728x90
반응형
# 외부로 서비스하는 방법들과 노드포트
NodePort: 노드의 자체 포트를 사용하여 포드로 리다이렉션
LoadBalancer: 외부 게이트웨이를 사용해 노드 포트로 리다이렉션
Ingress: 하나의 IP 주소를 통해 여러 서비스를 제공하는 특별한 메커니즘
# 노드포트 생성하기
port: 80 # 서비스의 포트 (브라우저 서비스 시 서비스 포트)
targetPort: 8080 # 포드의 포트 (deployment 생성 시 포트)
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 <none> 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 <none> Ubuntu 20.04.3 LTS 5.11.0-38-generic docker://20.10.7
k8sworkernode01-virtual-machine Ready <none> 37h 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> 37h v1.22.3 192.168.137.254 <none> 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
반응형
'혼자하는 프로젝트 > Hyper-V_쿠버네티스_서비스' 카테고리의 다른 글
노드포트(nodeport)를 활용한 nginx 웹서버 구현 (0) | 2021.11.06 |
---|