Kubernetes [ Service ]
2025. 5. 26. 02:35ㆍkubernetes
Service : 서비스는 로드밸런서와 요청을 받는 역활을 한다.
appVersion: v1
kind: Service
metadata:
name: test-service # Service의 이름
spec: # Service의 원하는 상태를 정의
type: NodePort # Service의 타입 (NodePort는 클러스터 외부에서 접근 가능하게 함)
selector: # 이 Service가 연결할 Pod를 선택하는 레이블 셀렉터
app: test-app # 'app: test-app' 레이블을 가진 Pod를 선택
ports: # Service가 노출할 포트 정의 목록
- protocol: TCP # 사용할 프로토콜 (TCP 또는 UDP)
# Pod에서 내부에서 Service를 접근하는 포트 (클러스터 내부에서 Service IP로 접근 시 사용)
port: 3000 # Service가 노출할 클러스터 내부 포트 (Service IP:Port)
# Service에서 Pod를 접근하는 포트 (Pod 내부 컨테이너의 포트)
targetPort: 3000 # Service가 연결할 백엔드 Pod의 컨테이너 포트
# 외부에서 접근하는 포트 (노드 IP:NodePort)
nodePort: 30000 # 클러스터 외부에서 노드 IP를 통해 접근할 수 있는 포트
port : Pod 내부에 열려있는 포트 번호
targetPort : deployment에서 설정한 포트 번호
nodePort : 외부에서 접근하는 포트
port
targetPort는 deployment에서 리스닝할 포트번호를 열어놨기 때문에 포트번호를 맞춰서 설정해야 한다.
spec의 type값
NodePort : 내부에서 해당서비스를 접속하기 위한 포트를 열고 외부에서 접속하도록함
ClusterIP: 쿠버네티스 내부에서만 통신 할수있는 IP주소 부여 외부에서는 요청 할수없음
LoadBalancer: 외부 로드밸런서를 활용하여 외부에서 접근하도록 연결
설정, 이미지 업데이트 설정 적용 명령어
kubectl apply -f [Service 파일]
728x90
반응형
'kubernetes' 카테고리의 다른 글
Kubernetes 정리 (1) | 2025.05.26 |
---|---|
Kubernetes [ Deployment ] (0) | 2025.05.25 |
Kubernetes [ Pod ] (0) | 2025.05.25 |