CKA [Installation] – NetworkPolicy例子4,podSelector的多复合使用

database pod 允许app pod 进入,但是其他的pod就禁止。
✅ 实验案例
1. 创建NetworkPolicy , 由于yaml没有注明是什么namespace, 所以默认是创建在default namespace
在ingress和egress的声明yaml内需要使用from或to , 我这里使用的是from
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: example-4
spec:
podSelector:
matchLabels:
role: database
ingress:
- from:
- podSelector:
matchLabels:
role: app
policyTypes:
- Ingress
kubectl apply -f netpol.yaml
2. 创建 app-pod , 并且绑定label
kubectl run app-pod --image=alpine/curl -- sleep 36000
kubectl label pod app-pod role=app
3. 创建 database-pod , 并且绑定label
kubectl run database-pod --image=alpine/curl -- sleep 36000
kubectl label pod database-pod role=database
4. 创建other-pod
kubectl run other-pod --image=alpine/curl -- sleep 36000
5. 查看pod ip 和是否有正确绑定label
kubectl get pod -n default -o wide --show-labels

6. 进入 other-pod 和 app-pod 去ping database-pod的IP , 理论上来看的话必须是只有app-pod能够ping而已
kubectl exec -it app-pod -n default -- sh
kubectl exec -it other-pod -n default -- sh
ping 10.244.120.74


Facebook评论