Certified Kubernetes Administration - 15
2024-06-20
- Kubernetes
- Cloud
Kubernetes ClusterIP 서비스
-
웹 애플리케이션의 구성 요소:
-
프론트엔드 웹 서버를 호스팅하는 여러 Pod
-
백엔드 서버를 실행하는 Pod
-
Redis와 같은 키-값 저장소를 실행하는 Pod
-
MySQL과 같은 영구 데이터베이스를 실행하는 Pod
-
-
연결의 필요성:
-
웹 프론트엔드 서버는 백엔드 서버와 통신해야 함
-
백엔드 서버는 데이터베이스와 Redis 서비스와 통신해야 함
-
-
Pod의 IP 주소:
-
Pod는 IP 주소를 가지지만, 이 IP 주소는 고정되지 않음
-
Pod가 언제든지 종료되고 새로운 Pod가 생성될 수 있기 때문에 내부 통신에 이 IP 주소를 신뢰할 수 없음
-
-
서비스의 역할:
-
서비스는 Pod를 그룹화하고 단일 인터페이스를 제공하여 그룹 내의 Pod에 접근할 수 있게 함
-
예를 들어, 백엔드 Pod를 위한 서비스를 생성하면, 모든 백엔드 Pod를 그룹화하고 다른 Pod가 이 서비스에 접근할 수 있는 단일 인터페이스를 제공함
-
요청은 서비스 하위의 Pod 중 하나에 무작위로 전달됨
-
-
Microservices 배포:
-
각 계층은 필요한 대로 확장하거나 이동할 수 있으며, 서비스 간의 통신에 영향을 주지 않음
-
각 서비스는 클러스터 내에서 IP와 이름을 할당받으며, 다른 Pod는 이 이름을 사용하여 서비스에 접근함
-
이 유형의 서비스를 ClusterIP 서비스라고 함
-
ClusterIP 서비스 정의 파일 작성
-
기본 템플릿:
-
API 버전, 종류, 메타데이터, 사양
-
API 버전은 V1, 종류는 서비스, 서비스 이름은 backend
-
-
사양 섹션:
-
타입은 ClusterIP (기본값이므로 생략 가능)
-
포트 섹션:
-
targetPort: 백엔드가 노출되는 포트 (80)
-
port: 서비스가 노출되는 포트 (80)
-
-
-
Pod 연결:
-
Pod 정의 파일에서 레이블을 가져와서 선택기(selector)에 추가
-
Cube Control Create 명령어를 사용하여 서비스를 생성하고, Cube Control Get Services 명령어로 상태 확인
-
다른 Pod는 클러스터 IP나 서비스 이름을 사용하여 서비스에 접근할 수 있음
-
요약
-
ClusterIP 서비스를 사용하면 각 계층이 필요에 따라 확장하거나 이동할 수 있으며, 서비스 간의 통신에 영향을 주지 않음
-
서비스는 Pod를 그룹화하고 단일 인터페이스를 제공하여 그룹 내의 Pod에 접근할 수 있게 함
-
Cube Control Create 명령어를 사용하여 서비스를 생성하고, Cube Control Get Services 명령어로 상태를 확인할 수 있음
이 강의는 여기까지입니다. 다음 강의에서 뵙겠습니다.
Certified ...
Certified ...