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

Loading

Facebook评论