작성
·
133
1
안녕하세요.
NetworkPolicy-ipBlock-except.yaml 파일을
[root@m-k8s 8.6]# cat 3-3-NetworkPolicy-ipBlock-except.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: networkpolicy-ipblock-except
namespace: default
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress
ingress:
- from:
- ipBlock:
cidr: 172.16.0.0/16
# change your CIDR to shut it down
except:
- 172.16.132.0/24
egress:
- to:
- ipBlock:
cidr: 172.16.0.0/16
# change your CIDR to shut it down
except:
- 172.16.132.0/24
위와 같이 설정 후,
[root@m-k8s 8.6]# k apply -f 3-3-NetworkPolicy-ipBlock-except.yaml
networkpolicy.networking.k8s.io/networkpolicy-ipblock-except created
[root@m-k8s 8.6]# k get po -o wide | grep deploy-ipblock-ddb5f6ff9
deploy-ipblock-ddb5f6ff9-klkkj 1/1 Running 0 20s 172.16.103.150 w2-k8s <none> <none>
deploy-ipblock-ddb5f6ff9-l7fdx 1/1 Running 0 20s 172.16.132.37 w3-k8s <none> <none>
deploy-ipblock-ddb5f6ff9-q4r7m 1/1 Running 0 20s 172.16.221.154 w1-k8s <none> <none>
[root@m-k8s 8.6]# k exec net -it -- /bin/bash
[root@net /]# ping 172.16.103.150
PING 172.16.103.150 (172.16.103.150): 56 data bytes
^C
--- 172.16.103.150 ping statistics ---
5 packets transmitted, 0 packets received, 100% packet loss
[root@net /]# ping 172.16.132.37
PING 172.16.132.37 (172.16.132.37): 56 data bytes
^C
--- 172.16.132.37 ping statistics ---
5 packets transmitted, 0 packets received, 100% packet loss
[root@net /]# ping 172.16.221.154
PING 172.16.221.154 (172.16.221.154): 56 data bytes
^C
--- 172.16.221.154 ping statistics ---
4 packets transmitted, 0 packets received, 100% packet loss
ping을 보낼 시, 강의에서는 w3-k8s에만 ping이 안가야 정상이고 나머지 (w1-k8s / w2-k8s)에는 ping이 가야하지만 NetworkPolicy-ipBlock-except.yaml 적용 시, 어떠한 노드에도 핑이 가지 않습니다.
yaml 파일에서도 except를 172.16.132.0/24로 주었지만 되지 않습니다.
해당 IP 대역만 제외했는데 왜 다른 대역도 먹통이 되는지 이해가 안됩니다 ㅠㅠ
(NetworkPolicy-ipBlock-except.yaml 해제하면 모든 노드에 ping이 감)
답변 1
1
안녕하세요
제 생각에는 현재 테스트에 사용하고 있는 net pod에 network policy가 적용되어서 그렇게 동작하는 것 같습니다.
배포된 net pod의 IP CIDR와 배포된 노드를 한번 확인해 보시겠어요?
[root@m-k8s 8.6]# k get po -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
deploy-ipblock-ddb5f6ff9-fsscv 1/1 Running 0 5m37s 172.16.103.130 w2-k8s <none> <none>
deploy-ipblock-ddb5f6ff9-n96lr 1/1 Running 0 5m37s 172.16.221.133 w1-k8s <none> <none>
deploy-ipblock-ddb5f6ff9-rw6dv 1/1 Running 0 5m37s 172.16.132.4 w3-k8s <none> <none>
net 1/1 Running 0 46s 172.16.103.131 w2-k8s <none> <none>
net을 포함한 전체 파드에 대한 IP 정보를 제공해 주시면 함께 살펴보겠습니다 🙂
넵 맞습니다. 해당 net 파드를 다시 만들어서 다른 노드로 가도록 한 다음에 테스트 하시면
영상과 동일한 결과를 확인하실 수 있으실꺼에요 🙂
다른 분들을 위해 해당 내용으로 강의 하단에도 동일하게 기록해 두었습니다!
w3-k8s에 net에 배포되어 있네요.
결국 w3-k8s에 net pod가 배포 되어있어서
except로 w3 노드를 제외시켰기때문에 net 자체가 NetworkPolicy로 인해서 동작을 안하게 되는거로 이해하면 될까요?