더북(TheBook)

expose로 노드포트 서비스 생성하기

노드포트 서비스는 오브젝트 스펙 파일로만 생성할 수 있을까요? 아닙니다. 노드포트 서비스는 expose 명령어로도 생성할 수 있습니다. 이번에는 expose로 노드포트 서비스를 생성하고 정상적으로 작동하는지 확인해 보겠습니다.

1. expose 명령어를 사용해 서비스로 내보낼 디플로이먼트를 np-pods로 지정합니다. 해당 서비스의 이름은 np-svc-v2로, 타입은 NodePort로 지정합니다(이때 서비스 타입은 반드시 대소문자를 구분해야 합니다). 마지막으로 서비스가 파드로 보내줄 연결 포트를 80번으로 지정합니다.

[root@m-k8s ~]# kubectl expose deployment np-pods --type=NodePort --name=np-svc-v2 --port=80
service/np-svc-v2 exposed

2. kubectl get services를 실행해 생성된 서비스를 확인합니다. 오브젝트 스펙으로 생성할 때는 노드포트 포트 번호를 30000번으로 지정했으나 expose를 사용하면 노드포트의 포트 번호를 지정할 수 없습니다. 포트 번호는 30000~32767에서 임의로 지정되므로 여러분이 생성한 노드포트의 포트 번호는 이 책과 다를 수 있습니다.

[root@m-k8s ~]# kubectl get services
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP        92m
np-svc       NodePort    10.102.202.92   <none>        80:30000/TCP   7m13s
np-svc-v2    NodePort    10.108.152.33   <none>        80:32122/TCP  9s 
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.