首页 > 解决方案 > Kubernetes 中的网络策略在不同的命名空间中不起作用

问题描述

我按照这篇文章检查了网络策略的功能

https://medium.com/better-programming/how-to-secure-kubernetes-using-network-policies-bbb940909364

创建了 3 个命名空间 web、中间件和数据库,为 web 和中间件创建了与文章中提到的完全相同的网络策略。

而不是以下命令来创建部署

$ kubectl 创建部署 nginx --image=ewoutp/docker-nginx-curl -n web

$ kubectl 创建部署 nginx --image=ewoutp/docker-nginx-curl -n 中间件

$ kubectl 创建部署 nginx --image=ewoutp/docker-nginx-curl -n 数据库

我使用了这个 yaml 内容

enter code here

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      tier: web
  template:
     metadata:
       labels:
        tier: web
  spec:
     containers:
       - name: nginx
         image: ewoutp/docker-nginx-curl
         command:
           - "/bin/sh"
           - "-c" 
           - while true; do echo $(date) >> /mnt/blob/outfile; sleep 1; done

strategy:
   rollingUpdate:
   maxSurge: 0
  maxUnavailable: 1
  type: RollingUpdate

根据网络策略,我的中间件应该从我的网络命名空间获取连接,但它不起作用。

我收到如下错误

curl:(7)无法连接到端口 80:连接被拒绝命令以退出代码 7 终止

我怀疑网络策略没有正确应用,如果我在这里犯了任何错误,有人可以告诉我。请查看文章以获取更多详细信息。

我的中间件网络策略如下 在此处输入图像描述

提前致谢 :)

标签: kuberneteskubernetes-networkpolicymedium.com

解决方案


推荐阅读