KJH
K8S Service 본문
1. Service란
- pod를 배포했으면, 내부적으로나 외부적으로 pod를 사용할 수 있도록 길을 열어주는 역할
- pod를 배포하면 랜덤으로 ip를 배정받게 되는데 재시작 할 때마다 변경되기 때문에 pod의 직접적인 엔드포인트 호출은 비효율적이므로 Service를 사용하고, 이를 통해 LB역할 까지 가능하게 함
- 멀티포트를 지원함
1.1 Service의 type 종류
이름 | 내용 |
ClusterIP | 클러스터 내부적으로 사용할 IP를 할당합니다. |
NodePort | 30000~32767포트를 개방하여 floatingIP를 가지고 있다면 외부에서 해당 pod로 접근 가능합니다. |
LoadBalancer | Public 클라우드에서 제공하는 설정 방식 외부 IP를 가지고 있는 로드밸런서를 할당 합니다. |
ExternalName | 외부 서비스를 쿠버네티스 내부에서 호출하고자 할때 사용할 수 있습니다. (proxy 역할) |
ExternalIP | 서비스에 외부IP를 지정하는 방식. 쿠버네티스에서는 관리하지 않으므로 외부에서 관리해야 합니다. |
None | headless 서비스로 Pod에 직접 접근 가능한 고유IP와 DNS를 생성하는데 외부로 노출할 필요가 없는 api를 위해 주로 사용 |
2. service 배포 yaml
apiVersion: v1 kind: Service metadata: name: stress-svc # 서비스 이름 설정 namespace: size spec: selector: app: stress-w1 # pod의 label 선택 ports: # 멀티 포트 지원 - name: http port: 80 protocol: TCP targetPort: 80 - name: https port: 443 protocol: TCP targetPort: 443 type: ClusterIP # service의 type 지정, 내부 IP 할당 |
※ 이미지 출처
1. https://docs.microsoft.com/ko-kr/azure/architecture/reference-architectures/containers/aks-microservices/aks-microservices
'Kubernetes' 카테고리의 다른 글
K8S Volume (0) | 2021.10.06 |
---|---|
K8S Ingress (0) | 2021.10.04 |
K8S Pod (0) | 2021.09.25 |
K8S scheduler (0) | 2021.09.22 |
K8S 소개 (0) | 2021.09.22 |