[Service]
- 다른 app, 사용자 등과 통신할 수 있게 해줌
- frontend - backend - db 통신과 같은 pod 그룹이 서로 통신할 수 있게 해주는 역할
* 방법1 - NodePort
- 특정 포트를 지정해서 해당 Node_ip: port로 접속하면 지정된 pod에 접근
- 외부 통신 가능한 포트를 하나 만들어 준다고 생각하면 쉬움
- 범위: 3000~32767
* 방법2 - Cluster IP
- Cluster 내부 가상 ip 할당해서 해당 ip를 통해 내부 자원끼리 통신
- frontend, backend, db 등을 각각의 서비스로 묶었을 때, 각 서비스에 ip와 이름이 할당되는데 이를 cluster ip라 부름
- default 옵션
* 방법3 - LB
- LB 통해 통신 (csp 등에서 제공하는 lb)
- 각 Node ip로 접근을 하면, 사용자는 모든 node의 ip를 받아야하는데 하나의 url로 받기 위해 상단에 lb를 두는 것
- 상단 vm에 nginx 같은 거를 설치해서 lb로 사용 가능
- CSP에서는 LB를 제공하기 때문에 yaml 파일에서 LoadBalancer로 type 지정만 해주면 됨
[Service 생성 yaml]
- port는 반드시 입력, target port는 없으면 port와 동일하게 인식
- nodeport는 범위내에서 할당
- selector 통해서 어디 pod와 연결할지 명시
<참고>
- Pod가 여러개인 경우: label 통해서 해당 label 지닌 모든 Pod에 연결
- Node가 여러개인 경우: service가 모든 Node 해당하도록 생성, 해당 Node ip와 동일한 port를 통해 연결 가능
- 즉, Pod나 Node 개수에 따라 별도 설정 등 필요 없음
[endpoint]
- svc 입장에서는 pod로 연결하는 포인트(yaml에서는 label)
'Kubernetes > Beginner' 카테고리의 다른 글
Kubernetes for the Absolute Beginners - 섹션 6 (0) | 2024.07.25 |
---|---|
Kubernetes for the Absolute Beginners - 섹션 5 (0) | 2024.07.25 |
Kubernetes for the Absolute Beginners - 섹션 4 (0) | 2024.07.23 |
Kubernetes for the Absolute Beginners - 섹션 3 (0) | 2024.07.23 |
Kubernetes for the Absolute Beginners - 섹션 1, 2 (1) | 2024.07.23 |