【发布时间】:2022-06-28 23:54:02
【问题描述】:
如何定义我的网络策略,以便同一命名空间中的两个 pod(test-server 和 test-server2)可以从集群外部访问但不能相互访问?
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
test-server-7555d49f48-sfzv9 1/1 Running 0 63m
test-server2-55c9cc78d4-knn59 1/1 Running 0 100m
# test: deny all ingress traffic
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: deny-all-ingress
spec:
podSelector: {}
policyTypes:
- Ingress
# test: allow ingress traffic for test-server service
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: allow-test-server-ingress
spec:
podSelector:
matchLabels:
app: test-server
policyTypes:
- Ingress
ingress:
- {}
---
# test: allow ingress traffic for test-server2 service
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: allow-test-server2-ingress
spec:
podSelector:
matchLabels:
app: test-server2
policyTypes:
- Ingress
ingress:
- {}
使用这种方法,两个服务都可以从外部访问,但您也可以从一个服务跳转到另一个。
【问题讨论】:
标签: kubernetes kubernetes-networkpolicy