我按照这篇文章检查了网络策略的功能
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 终止
我怀疑网络策略没有正确应用,如果我在这里犯了任何错误,有人可以告诉我。请查看文章以获取更多详细信息。
提前致谢 :)