Exercise 6.5: Testing the Policy
NetworkPolicy 생성
cat <<EOF | kubectl apply -f - apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: default spec: podSelector: {} policyTypes: - Ingress - Egress EOFCURL 명령어를 통해서 생성된 Pod의 IP주소로 HTTP 요청
curl --connect-timeout 3 $(kubectl get pod -l app=nginx -o=jsonpath='{.items[0].status.podIP}')CURL 명령어를 통해서 생성된 Service의 Cluster IP주소로 HTTP 요청
curl --connect-timeout 3 $(kubectl get svc nginx -o=jsonpath='{.spec.clusterIP}')웹브라우저에서
ANY_NODE_IP:SERVICE_NODE_PORT로 접속되는지 확인 - 아래 명령어로 주소 확인 가능echo "$(curl -s ifconfig.io):$(kubectl get service nginx -o=jsonpath='{.spec.ports[0].nodePort}')"Pod에서 외부 통신이 가능한지 확인
kubectl exec -it deploy/nginx -- nc -vz www.google.com 80NetworkPolicy 업데이트
cat <<EOF | kubectl apply -f - apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: default spec: podSelector: {} policyTypes: - Ingress EOFPod에서 외부 통신이 가능한지 확인
kubectl exec -it deploy/nginx -- nc -vz www.google.com 80NetworkPolicy 업데이트
cat <<EOF | kubectl apply -f - apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: default spec: podSelector: {} policyTypes: - Ingress ingress: - from: - ipBlock: cidr: 192.168.0.0/16 EOFCURL 명령어를 통해서 생성된 Pod의 IP주소로 HTTP 요청
curl --connect-timeout 3 $(kubectl get pod -l app=nginx -o=jsonpath='{.items[0].status.podIP}')CURL 명령어를 통해서 생성된 Service의 Cluster IP주소로 HTTP 요청
curl --connect-timeout 3 $(kubectl get svc nginx -o=jsonpath='{.spec.clusterIP}')웹브라우저에서
ANY_NODE_IP:SERVICE_NODE_PORT로 접속되는지 확인 - 아래 명령어로 주소 확인 가능echo "$(curl -s ifconfig.io):$(kubectl get service nginx -o=jsonpath='{.spec.ports[0].nodePort}')"ping 명령어를 통해서 생성된 Pod의 IP주소로 ICMP 요청
ping -c5 $(kubectl get pod -l app=nginx -o=jsonpath='{.items[0].status.podIP}')NetworkPolicy 업데이트
cat <<EOF | kubectl apply -f - apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: default spec: podSelector: {} policyTypes: - Ingress ingress: - from: - ipBlock: cidr: 192.168.0.0/16 ports: - port: 80 protocol: TCP EOFping 명령어를 통해서 생성된 Pod의 IP주소로 ICMP 요청
ping -c5 $(kubectl get pod -l app=nginx -o=jsonpath='{.items[0].status.podIP}')리소스 삭제
{ kubectl delete networkpolicy default kubectl delete svc nginx kubectl delete deploy nginx }
Last updated