DevOps/그림으로 이해하는 가상화와 컨테이너

5. 컨테이너 오케스트레이션 도구, 쿠버네티스

우드의개발개발 2024. 8. 14. 10:46


5.1  컨테이너 오케스트레이션: 컨테이너를 관리하기 위한 작업

 

 

요약

  • 컨테이너 오케스트레이션은 컨테이너 관리 및 운영을 자동화한다.
  • 컨테이너 관리 및 운영에는 로드 밸런싱, 헬스 체크, 스케일링 등이 필요하다.
  • 컨테이너를 활용한 애플리케이션이 보급되고 그 규모가 커질수록 컨테이너 오케스트레이션은 점점 더 중요해질 것이다.

 

 

5.2  쿠버네티스: 컨테이너의 관리 및 운영을 자동화하는 도구

 

요약

  • 쿠버네티스는 오케스트레이션하는 도구다.
  • 쿠버네티스 클러스터는 쿠버네티스에서 관리하는 시스템의 집합이다.
  • 노드에는 실제로 파드를 구동하는 워커와, 워커를 제어하는 마스터라는 두가지 유형이 있다.

 

5.3  파드: 컨테이너를  관리하는 단위

요약

  • 파드는 쿠버네티스가 컨테이너를 관리하는 최소 단위다.
  • 같은 파드 내에서 시작할 필요가 없는 컨테이너는 가능한 한 별도의 파드에 포함하는 것이 좋다.
  • 파드는 컨테이너 관리를 쿠버네티스에 맡길 수 있다.
  • 사이트카 컨테이너는 자주 사용하는 디자인패턴이다.

 

5.4  디플로이먼트 컨트롤러: 오케스트레이션을 지원하는 가장 중요한 요소

요약

  • 레플리카셋은 같은 유형의 파드만 포함하는 그룹이다.
  • 디플로이먼트 같은 레플리카셋의 다른 버전이 포함된 그룹이다.
  • 디플로이먼트 컨트롤러는 디플로이먼트를 특정 상태로 유지하는 컨트롤러이다.

 

5.5  서비스:  컨테이너에 접속하는 창구

요약

  • 서비스는 컨테이너에 접속하기 위한 엔드포인트를 제공한다.
  • 서비스에 의해 컨테이너의 실행과 정지가 반복되는 상황에서도 컨테이너에 접속할 수 있다.

 

5.6  플라넬: 컨테이너 간 상호 접속을 지원하는 기술

요약

  • 같은 파드에 포함된 컨테이너는 로컬호스트에 접속하면 통신할 수 있다.
  • 파드에는 고유의 IP 주소가 할당되어 있다.
  • 플라넬은 컴퓨터의 파드끼리 통신하는 방식이다.

 

5.7  로드 밸런싱과 헬스 체크: 시스템의 가용성을 향상시키는 방법

요약

  • 로드 밸런싱과 헬스 체크를 조합하면 시스템 가용성을 높일 수 있다.
  • kube-proxy iptables 규칙을 변경해 로드 밸런싱을 실현한다.
  • kubelet은 파드의 상태를 정기적으로 확인해 헬스 체크를 구현한다.

 

5.8  스케일링: 시스템의 성능을 향상시키는 방법

요약

  • 스케일링이란 요청 규모에 따라 컨테이너를 늘리거나 줄이는 것을 말한다.
  • 메트릭스는 스케일링을 수행할지 여부를 결정하는 데 사용하는 데이터이다.
  • HPA는 파드의 수평 스케일링을 수행하고, CA는 클러스터의 수평 스케일링을 수행한다.

 

5.9  쿠버네티스 주요 명령어: 필수 명령어

요약

  • 쿠버네티스는 매니페스트로 클러스터를 조작한다.
  • 레이블 및 레이블 셀렉터를 사용해 개체를 선택할 수 있다.
  • 생성/변경 명령어는 kubectl apply이며 -f에 지정된 매니페스트의 내용에 따라 무엇을 생성/변경할지가 바뀐다.

 

5.10  자동 빌드: 이미지 생성부터 배포까지 절차를 자동화

요약

  • 자동 빌드란 프로그램 등을 사용할 수 있는 상태로 만드는 절차를 자동화하는 것이다.
  • 자동 배포란 프로그램 등을 릴리스하는 절차를 자동화하는 것이다.
  • 쿠버네티스를 사용해 개발한 것을 릴리스하려면 이미지 생성, 레지스트리 등록, 배포 업데이트까지 3단계가 필요하다.

5.11  멀티 클라우드: 여러 클라우드에서 쿠버네티스 사용

요약

  • 멀티 클라우드는 여러 클라우드를 조합해 구성된 환경.
  • 쿠버네티스는 각 클라우드 간 차이를 절충해 같은 절차로 작업을 가능하게 한다.

 

5.12  쿠버네티스의 아키텍처: 각 노드에서 동작하는 구성 요소

요약

  • 마스터와 워커는 다양한 구성 요소가 작동하고 구성 요소가 함께 연동해 오케스트레이션을 수행한다.

 

 

 

 

 

 

4. 컨테이너형 가상화 소프트웨어, 도커