학습 목표
- 컨테이너 오케스트레이션이 무엇인지 이해할 수 있다.
- 쿠버네티스의 간단한 작동 원리를 이해할 수 있다.
- 쿠버네티스 리소스 명세를 작성할 수 있다.
- 파드 명세를 작성할 수 있다.
- 디플로이먼트 명세를 작성할 수 있다.
- 서비스를 이용해 파드를 노출할 수 있다.
- kubectl 명령어를 사용하여 리소스의 생성, 삭제, 조회를 할 수 있다.
- kubectl 명령어를 사용하여 롤아웃 관련 작업을 진행할 수 있다.
- 롤링 배포 현황을 확인할 수 있다.
- 새로운 버전에 문제가 발생했을 때 롤백할 수 있다.
(이하 advanced)
- liveness probe를 이용하여 파드의 health check를 할 수 있다.
- 쿠버네티스가 Stateful한 애플리케이션을 다루는 방법을 이해할 수 있다.
- 쿠버네티스에서 인그레스를 이용한 HTTP 기반 라우팅을 적용할 수 있다.
- helm 패키지 매니저를 사용할 수 있다.
- 쿠버네티스 상에서 작동되는 애플리케이션
- “워크로드 리소스”를 만들기 위해 YAML 파일과 같은 리소스 정의 파일을 사용하는 것이 일반적
파드 (Pods)
- 쿠버네티스의 배포 가능한 가장 작은 컴퓨팅 유닛
- 그 자체로 하나의 논리적인 호스트
- 다음 요소들을 포함할 수 있으며, 도커 컨테이너처럼 파드 내에서 다음 요소들은 격리됨
- 하나 이상의 애플리케이션 컨테이너
- IP 주소
- 볼륨과 같은 공유 스토리지
디플로이먼트 (Deployment)
- 파드는 일시적이고, 언제나 삭제될 수 있음을 감안하고 만들기 때문에 사용자가 직접 개별 파드를 만들 일이 많지 않음
- 파드가 실행되는 공간인 노드가 만일 실패하는 경우, 그 안에서 실행되는 파드 역시 사용할 수 없게됨
- 쿠버네티스의 핵심은 컨테이너를 오케스트레이션하는 것으로, 파드 장애 시 자동 복구하거나, 복제하거나 하는 등의 일을 자동으로 처리하는 것
- 결론적으로, 파드는 디플로이먼트, 스테이트풀셋, 데몬셋을 이용해 관리하는 것이 바람직함
- 쿠버네티스의 Deployment는 서비스 노출의 의미가 아닌, 파드의 교체/배치(placement)와 관련된 선언적 명세
- (레플리카셋, 즉 복제본 구성을 이용하여) 파드를 원하는 개수만큼 실행시킬 수 있음
- (제어판 Control Plane을 이용하여) 파드를 업데이트할 수 있음
- 마찬가지로, 파드를 롤백하는 것도 가능
- 디플로이먼트는 파드의 복제본을 자동으로 업데이트하게 해주는 명세이므로, 쿠버네티스가 지원하는 배포 전략으로는 재생성(Recreate)과 롤링 배포(RollingUpdate) 방식을 선택할 수 있음
서비스
- 클러스터 안에 파드는 각각 고유의 IP를 가지고 있지만, 직접 우리가 내부망에 접속할 수 있는 것은 아님
- 어떻게 파드 안에 서비스가 외부로 노출될 수 있을까?
- 서비스 리소스를 사용하면 파드에서 실행 중인 애플리케이션에 클러스터 외부에서 접근할 수 있음
- 또한 서비스를 사용하여 클러스터 내부에서 사용할 수 있는 서비스만 게시할 수 있음
- 쿠버네티스에서 서비스는 파드의 집합에 접근할 수 있는 정책을 정의하는 추상적 개념
- 서비스 리소스가 정의된 YAML 파일에 selector라는 것을 이용해 서비스할 대상 타깃을 설정할 수 있음
- 디플로이먼트를 통해 파드의 복제본을 원하는 개수만큼 실행시킬 수 있고, 서비스 리소스는 이러한 파드 집합에 접근할 수 있게함
- 파드가 교체되거나, 어떤 특정 파드에 문제가 생긴 경우에도 사용 가능한 파드를 찾아 알아서 접속할 수 있게 도움
'Code States > TIL' 카테고리의 다른 글
[0522] 컨테이너 오케스트레이션 - 쿠버네티스 구성 요소 (0) | 2023.05.22 |
---|---|
[0519] (페어) 컨테이너 오케스트레이션 - 새 버전이 망가졌어요 (0) | 2023.05.19 |
[0518] 컨테이너 오케스트레이션 - 쿠버네티스 주요 개념 (0) | 2023.05.18 |
[0515-0516] (페어) Infrastructure as Code - Terraform x AWS (1) | 2023.05.16 |
[0512] Infrastructure as Code - Terraform (0) | 2023.05.12 |