Docker 컨테이너를 Nodeport를 이용하여 구현하기

Docker 컨테이너를 Nodeport를 이용하여 구현하기

728x90

# 외부로 서비스하는 방법들과 노드포트

NodePort: 노드의 자체 포트를 사용하여 포드로 리다이렉션

LoadBalancer: 외부 게이트웨이를 사용해 노드 포트로 리다이렉션

Ingress: 하나의 IP 주소를 통해 여러 서비스를 제공하는 특별한 메커니즘

# 노드포트 생성하기

port: 80 # 서비스의 포트

targetPort: 8080 # 포드의 포트

nodePort: 30001 # 최종적으로 서비스되는 포트

- 간단한 개념 : 노드 - svc - 포드

1. yaml 파일 생성

k8s-master-node@k8smasternode-Virtual-Machine:~/yaml$ vi http-go-nodeport.yaml

- 코드 복사 붙여넣기

apiVersion: apps/v1 kind: Deployment metadata: name: http-go labels: app: http-go spec: selector: matchLabels: app: http-go template: metadata: labels: app: http-go spec: containers: - name: http-go image: may9noy/http-go ports: - containerPort: 8080

2. yaml 파일 실행하기

kubectl create -f http-go-nodeport.yaml

- Nodeport 서비스 실행하기

kubectl expose deployment/http-go --type="NodePort" --port 9090 --target-port=8080 --protocol="TCP"

- 서비스 확인

k8s-master-node@k8smasternode-Virtual-Machine:~/yaml$ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE http-go NodePort 10.105.146.28 9090:30972/TCP 18s k8s-master-node@k8smasternode-Virtual-Machine:~/yaml$ 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 38h v1.22.3 192.168.137.50 Ubuntu 20.04.3 LTS 5.11.0-38-generic docker://20.10.7 k8sworkernode01-virtual-machine Ready 37h v1.22.3 192.168.137.105 Ubuntu 20.04.3 LTS 5.11.0-38-generic docker://20.10.7 k8sworkernode02-virtual-machine Ready 37h v1.22.3 192.168.137.254 Ubuntu 20.04.3 LTS 5.11.0-38-generic docker://20.10.7 k8s-master-node@k8smasternode-Virtual-Machine:~/yaml$

3. 서비스 접근하기

NodeIP : ServicePort

워커노드01 : 192.168.137.105:30972

워커노드02 : 192.168.137.254:30972

- 도커 컨테이너를 Nodeport 를 활용하여 서비스 하는 방법에 대해서 알아 보았다.

- 끝 -

728x90

from http://may9noy.tistory.com/342 by ccl(A) rewrite - 2021-11-06 18:27:20