Sam*_*Sam 4 kubernetes google-kubernetes-engine
我在 Google Kubernetes Engine 上有一个集群,它使用 Calico 启用了网络策略。
到目前为止,我已经编写了 12 个网络策略作为 YAML 文件的形式。
我似乎无法弄清楚的一件事是,这些网络策略的创建顺序是否重要。
例如,假设我有这两个策略:
Pol#1- 拒绝所有入口连接
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-all-ingress
namespace: default
spec:
podSelector: {}
policyTypes:
- Ingress
Run Code Online (Sandbox Code Playgroud)
Pol#2- 允许后端访问数据库:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-db-to-be-accessed-by-backend
namespace: default
spec:
podSelector:
matchLabels:
app: mysql
release: production
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
app: backend
release: production
ports:
- protocol: TCP
port: 3306
Run Code Online (Sandbox Code Playgroud)
如果我先应用 Pol#1,然后应用 Pol#2,与先应用 Pol#2,然后应用 Pol#1 相比,我会得到不同的结果吗?
小智 7
不,您应用规则的顺序无关紧要。在您的情况下,Pol#2 规则无论如何都会起作用。
另一个 NetworkPolicy 示例:假设您有 2 个策略:第一个规则拒绝所有流量,第二个规则允许流量流向所选应用。无论您选择何种规则顺序 - 入口流量都将被允许进入具有标签app: web洞察力的 Podnamespace: default
拒绝-all.yaml:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: default-deny-all
namespace: default
spec:
podSelector: {}
ingress: []
Run Code Online (Sandbox Code Playgroud)
应用-nginx-app.yaml:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: web-allow-all
namespace: default
spec:
podSelector:
matchLabels:
app: web
ingress:
- {}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,你可以找到很多的networkPolicies例子有一步一步的解释这里。
希望有帮助。
| 归档时间: |
|
| 查看次数: |
1150 次 |
| 最近记录: |