on
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