서비스를 노출하는 세 가지 방법
- NodePort: 노드의 자체 포트를 사용하여 파드로 리다이렉션
- LoadBalancer (L4): 외부 게이트웨이를 사용해 노드 포트로 리다이렉션
- Ingress (L7): 하나의 IP 주소를 통해 여러 서비스를 제공하는 특별한 메커니즘
노드포트 생성하기
- 서비스에 yaml 파일을 작성
- type에 NodePort를 지정
- 30000-32767포트만 사용가능
$ gcloud compute firewall-rules create http-go-svc-rule --allow=tcp:30001
Creating firewall...⠛Created [https://www.googleapis.com/compute/v1/projects…].
Creating firewall...done.
NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED
http-go-svc-rule default INGRESS 1000 tcp:30001 False
$ kubectl get node -o wide
NAME STATUS ROLES … EXTERNAL-IP …
gke-standard-cluster-1-default-pool-d820cb23-lk38 Ready <none> … 34.67.21.139 …
gke-standard-cluster-1-default-pool-d820cb23-rhx3 Ready <none> … 34.67.112.205 …
gke-standard-cluster-1-default-pool-d820cb23-zcfb Ready <none> … 35.224.244.152 …
$ curl 34.67.21.139:30001
Welcome! http-go-rs-5pspr
노드포트 서비스의 패킷 흐름
노드포트를 활용한 로드밸런싱