apiVersion: v1
kind: Service
metadata:
name: sample-service
namespace: default
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
kubectl port-forward service/sample-service 8080:80

apiVersion: v1
kind: Service
metadata:
name: sample-service
namespace: default
spec:
type: NodePort
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30001

NodePort로 설정된 포트는 클러스터 내에 있는 모든 Node에 적용된다.
즉, Pod가 가동되고 있지 않은 Node도 상관없이 어떤 Node의 IP 주소로 접속하더라도 Service로 연결된다.
클러스터 상세 페이지에서 컴퓨팅 탭에 진입

가동되고 있는 노드 중 하나를 클릭하여 노드 상세 페이지로 진입

인스턴스 항목에 있는 링크를 클릭하여, 인스턴스 상세 화면으로 이동

보안탭을 클릭

인바운드 규칙 항목의 첫번째 아이템의 보안그룹을 클릭

보안 그룹 ID 항목을 클릭하여 보안 그룹 설정 화면으로 이동

인바운드 규칙 탬의 '인바운드 규칙 편집' 버튼을 클릭하여 편집 화면으로 진입

좌측 하단의 '규칙 추가' 버튼을 눌러 새로운 규칙을 추가

사용자 지정 TCP, NodePort에서 개방한 포트 번호, Anywhere IPv4를 입력하고 규칙을 저장

다시 인스턴스 상세 정보 화면으로 돌아가 '퍼블릭 IPv4 주소'로 접속을 시도해 본다.

gcloud compute firewall-rules create nodeport-study-allow-port --allow=tcp:30001



