Docker, k8s

k8s_NodePort , Port, TargetPort

우당탕탕인생기 2023. 9. 17. 23:45

k8s을 공부하다 보니 이 부분이 헷갈려서 따로 정리하려고 한다.

 

우선 각자의 정의에 대해서 알아보자

 

NodePort

- 외부에서 Node로 접근할 때 사용 되는 포트

 

Port

- Cluster 안에서 내부적으로 Service 객체에 접근하기 위해 사용되는 포트

 

TargetPort

- Service에서 전달 된 요청을 한 단계 아래인 Pod로 전달 될 때 사용되는 포트

 

 

즉 전달 순서는 NodePort - Port - TargetPort 순인 것이다.


Nginx을 NodePort로 서비스 시키고 NodePort는 32000 , 포트는 80 타겟 포트는 8080일때,

 

Service.yml 파일은 아래와 같다.

apiVersion: v1
kind: Service
metadata:
  name: web-nginx

spec:
  type: NodePort
  selector:
    app: nginx
  ports:
  - port: 80
    targetPort: 8080
    nodePort: 32000

nginx.yml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: dep-nginx
  
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: temp
    spec:
      containers:
        - name: nginx
          imgae: nginx
          ports:
          - containerPort: 8080

만약 이렇게 되어 있다면 그림으로 표현하면 아래와 같다.

외부 에서 32000포트로 요청이 들어오면 해당 노드 안에 있는 서비스의 포트 80으로 들어오게 되고 이는 서비스 안에 있는 Pod의 8080으로 전달된다.

'Docker, k8s' 카테고리의 다른 글

k8s_로드밸런스 Metallb  (0) 2023.09.20
k8s_ Autoscaling Metric Server(HPA)  (0) 2023.09.18
k8s_wordpress + mysql 연동  (0) 2023.09.17
k8s_Volume (1) EmptyDir , hostPath  (0) 2023.09.16
k8s_ Ingress nginx  (0) 2023.09.15