서비스
클러스터에 외부에서 클러스터에 접속하는 방법
- 클러스터 내부에서 동작하는 기능을 외부로 노출 하는 것을 서비스(
Service
)라고 부릅니다.
서로 다른 서비스의 종류
- 클러스터 IP(
ClusterIP
)
- 노드 포트(
NodePort
)
- 로드 밸런스(
LoadBalancer
)
- 인그레스(
Ingress
)
클러스터 IP
- 클러스터 내부에서만 접근할 수 있는 IP를 할당
- 포트 포워딩 또는 프록시를 통해 클러스터 외부로부터 접근 가능
- 테스트, 디버깅 등의 목적에 제한적으로 이용
노드 포트
- 모든 워커 노드의 특정 포트(
NodePort
)를 열고 여기로 오는 모든 요청을 노드포트 서비스에 전달
- 노드포트 서비스는 해당 요청을 처리할 수 있는 포드로 요청을 전달
로드 밸런스
- 클러스터 외부의 로드밸런서를 이용하여 부하 균등화를 수행
- 노드 포트와 달리 특정 노드가 접근 불가능한 경우에도 서비스 제공 가능
인그레스
- 복수의 서비스에 대해 목적에 따라 트래픽을 연결하는 도구
동적 수평 오토스케일링
- HPA(
Horizontal pod Autoscaler
)
- 메트릭스 서버로부터 부하 계측값을 전달받아 동일한 기능을 제공하는 포드의 수를 동적으로 조절
- 스케일링 기준이 되는 값과 최소/최대 포드의 수를 지정
- 부하 상황에 따라 동적으로 디플로이먼트의 레플리카셋 크기를 조정
불륨(Volumes)
- K8s는 클러스터 내에서 이용할 수 있는 저장장치(storage)의 추상화된 객체로 볼륭을 정의
- PV(
PersistentVolume
)
- 클러스터 내에 존재하는 스토리지를 추상화한 것
- 클러스터 내의 노드에 존재하는 물리적 저장장치를 이용할 수 있으며, 다양한 원격 저장소 및 클라우드 서비스들도 이용 할 수 있음
- PVC(
PersistentVolumeClaim
)
- PV를 이용하기 위한 요청
- Pod:Node = PVC:PV
- 저장 공간의 크기와 접근 모드 (읽기/쓰기) 를 지정
- 포드에서 바인드 마운트로 이용할 수 있는 저장장치
- 변화하는 데이터를 기록, 저장하기 위해서 반드시 필요