nginx Kubernetes网络策略不会产生任何影响

fslejnso  于 6个月前  发布在  Nginx
关注(0)|答案(1)|浏览(56)

我用这个命令启动了minikube

minikube start --network-plugin=cni --cni=calico

字符串
我用这个文件在默认命名空间中创建nginx pod

apiVersion: v1
kind: Pod
metadata:
  name: web
spec:
  containers:
  - image: nginx
    imagePullPolicy: Always
    name: nginx
    ports:
    - containerPort: 80
      protocol: TCP


我在qa命名空间中创建了一个pod,以使用此文件在默认命名空间中 curl nginx

apiVersion: v1
kind: Pod
metadata:
  name: curl-pod
spec:
  containers:
  - name: curlpod
    image: radial/busyboxplus:curl
    command:
    - sh
    - -c
    - while true; do sleep 1; done


当我 curl 它工作得很好,
在那之后,我需要在我的默认命名空间中拒绝进入nginx pod的流量,所以我应用了这个网络策略

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny-ingress
spec:
  podSelector: {}
  policyTypes:
  - Ingress


但是当我从qa命名空间中的pod curl 时,它不会做任何事情,它返回响应200 ok。
我不知道该怎么办,谁能帮帮我。

4uqofj5v

4uqofj5v1#

你可以尝试将minikube start命令改为:

minikube start --cni=false --network-plugin=cni

kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.3/manifests/tigera-operator.yaml

kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.3/manifests/custom-resources.yaml

字符串
然后验证Calico是否已安装并运行:

watch kubectl get pods -l k8s-app=calico-node -A


如果你想要一个全局默认的deny(所有命名空间),试试这个:

apiVersion: projectcalico.org/v3
kind: GlobalNetworkPolicy
metadata:
  name: default-deny
spec:
  selector: all()
  types:
    - Ingress
    - Egress


如果你想把它命名为你的默认ns,试试这个:

apiVersion: projectcalico.org/v3
kind: NetworkPolicy
metadata:
  name: default-deny
  namespace: default
spec:
  selector: all()
  types:
    - Ingress
    - Egress

相关问题