네트워크 정책 지원을 사용하는 Google Kubernetes Engine (GKE)에서 Kubernetes 클러스터를 실행하고 있습니다. 나는 더 이상 연결할 수 없습니다 클러스터에 있는지 다른 포드를 만들기 위해이 네트워크 정책을 만든 다음Kubernetes NetworkPolicy가로드 밸런서를 허용합니다.
kubectl run nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=LoadBalancer
: 나는 대한의 nginx 배포 및 부하 분산 장치를 만들어
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: access-nginx
spec:
podSelector:
matchLabels:
run: nginx
ingress:
- from:
- namespaceSelector:
matchLabels:
name: kube-system
ports:
- protocol: TCP
port: 80
(의도 한대로)
이제 내 클러스터에있는 다른 포드는 도달 할 수없는 :
kubectl run busybox --rm -ti --image=busybox /bin/sh
If you don't see a command prompt, try pressing enter.
/# wget --spider --timeout=1 nginx
Connecting to nginx (10.63.254.50:80)
wget: download timed out
을하지만, 그것은을 통해 그것을 더 이상 내 외부 브라우저를 사용하는 나는 또한 연결할 수 없음을 나를 놀라게 로드 밸런서 :
open http://$(kubectl get svc nginx --output=jsonpath={.status.loadBalancer.ingress[0].ip})
정책을 삭제하면 다시 작동하기 시작합니다.
그럼, 내 질문은 : 어떻게하면 nginx에 도달하지 못하도록 차단하지만로드 밸런서를 통해 액세스를 유지할 수 있습니까?