728x90
반응형
# 클라우드 네이티브가 아닌 로컬 환경에서 작업을 해야하는 경우가 많다. (비용때문에...)
서비스를 생성하면 기본은 ClusterIP를 가지고 생성이 된다. 이런경우 외부에서 접근이 가능하지 않으므로 실제 서비스를 웹어서 구현하기가 어렵다. (쿠린이라 정확하지않을 수 있다.) 그래서 NodePort를 활용하여 서비스 접근을 하게된다.
- 그래서 ClusterIP를 Nodeport로 변경하는 방법에 대해서 알아보자.
# 환경설명
일단 현재 nginx pod 5개가 구동중에 있다.
문어가 5개의 pod를 관리하고 있는 중이다.
1. 서비스 및 pod 조회
- 타입이 클러스터IP로 정의 되어있는것을 확인 할 수있다.
k8s-master-node@k8smasternode-Virtual-Machine:~$ kubectl get pod -n nginx
NAME READY STATUS RESTARTS AGE
mynginx-69d586ff67-fwtbt 1/1 Running 0 14m
mynginx-69d586ff67-gvggm 1/1 Running 0 4h23m
mynginx-69d586ff67-ln8n2 1/1 Running 0 14m
mynginx-69d586ff67-s5b27 1/1 Running 0 4h19m
mynginx-69d586ff67-wv2nm 1/1 Running 0 4h19m
k8s-master-node@k8smasternode-Virtual-Machine:~$ kubectl get svc -n nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
mynginx ClusterIP 10.96.157.97 <none> 80/TCP 4h23m
2. 타입을 Nodeport로 변경
k8s-master-node@k8smasternode-Virtual-Machine:~$ kubectl patch svc mynginx -n nginx -p '{"spec": {"type": "NodePort"}}'
service/mynginx patched
k8s-master-node@k8smasternode-Virtual-Machine:~$ kubectl get svc -n nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
mynginx NodePort 10.96.157.97 <none> 80:31533/TCP 4h26m
3. 서비스 접속 정보 확인
- 노드 포트로 접속을 하려면 노드의 ip를 알아야 한다.
- workernode01과 workdernode02의 ip 주소를 확인한다.
k8s-master-node@k8smasternode-Virtual-Machine:~$ kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
k8smasternode-virtual-machine Ready control-plane,master 2d6h v1.22.3 192.168.137.50 <none> Ubuntu 20.04.3 LTS 5.11.0-38-generic docker://20.10.7
k8sworkernode01-virtual-machine Ready <none> 2d6h v1.22.3 192.168.137.105 <none> Ubuntu 20.04.3 LTS 5.11.0-38-generic docker://20.10.7
k8sworkernode02-virtual-machine Ready <none> 2d6h v1.22.3 192.168.137.254 <none> Ubuntu 20.04.3 LTS 5.11.0-38-generic docker://20.10.7
4. url을 통한 접속 테스트
접속 url : node의ip:nodeport번호 즉,
workernode01 : 192.168.137.105:31533
workdrnode02 : 192.168.137.254:31533 이 될 것이다.
- 접속 테스트 = 정상적으로 접속이 완료 되었다.
5. 추가
ClusterIP에서 NodePort로 타입을 변경하게 되면 아래와 같이 NodePort가 부여 된다.
- 한마디로 NodePort 타입은 Node에 직접 연결이 가능한 포트를 열고 해당 서비스 포트와 맵핑 된다고 이해하면 된다.
- 끝 -
728x90
반응형
'⭐ Kubernetes & EKS > Kubernetes 예제' 카테고리의 다른 글
쿠버네티스 예제를 활용한 애플리케이션 개발 (2) (0) | 2021.09.26 |
---|---|
쿠버네티스 예제를 활용한 애플리케이션 개발 (1) (0) | 2021.09.20 |