CKA [Installation] – NetworkPolicy例子1,block 全部 ingress 和 egress

根据以上截图使用的NetworkPolicy是不选择任何的podSelector, 那么就意味着是选择了整个production namespace。policyTypes 使用了Ingress和Egress但是没有任何ingress和egress的配置,那么就是默认Ingress和Egress都封了所有的inbound rule和outbound rule
✅ 实验案例
1. 创建一个curl pod
kubectl run test-pod --image=alpine/curl -- sleep 36000
2. 进入pod内进行ping google.com
kubectl exec -it test-pod -- sh
ping google.com

3. 创建NetworkPolicy
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: example-1
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress
kubectl apply -f netpol.yaml
kubectl get netpol -n default

4. 重新进入pod来进行ping的测试,你会发现到无法进行ping
kubectl exec -it test-pod -- sh
ping google.com

如果ping得到的话就代表着你的CNI不支持NetworkPolicy,我使用的Minikube默认是bridge CNI,所以需要改用Calico的CNI才行。
minikube delete
minikube start --cni=calico
5. 删除创建的资源
kubectl delete networkpolicy example-1 -n default
kubectl delete pod test-pod -n default

Facebook评论