# 02장 쿠버네티스 도구

Assembled by GimunLee


# Kubeadm

  • Kubeadm은 쿠버네티스에서 공식 제공하는 클러스터 생성/관리 도구
  • 여러 대 서버를 쿠버네티스로 손쉽게 구성 가능
  • Kubeadm에서 제공하는 클러스터의 고가용성 구조는 여러 대의 마스터 노드를 구성하고, 그 앞에 로드밸런서를 배치시켜, 워커 노드들이 마스터 노드에 접근할 때는 로드밸런서를 거쳐 접근하도록 구현되어 있음
  • 마스터 노드 1대에 장애가 발생하더라도 로드 밸런서에서 다른 마스터 노드로 접근할 수 있게 해서 클러스터의 신뢰성 유지

# Kubespray

  • Kubespray는 상용 서비스에 적합한 보안성과 고가용성이 있는 쿠버네티스 클러스터를 배포하는 오픈소스 프로젝트

  • Kubespray는 서버 환경 설정 자동화 도구인 앤서블(ansible) 기반으로 개발

  • 설정에 따라 사용자에게 맞는 다양한 형식으로 쿠버네티스 클러스터를 구성할 수 있으므로 온프레미스 환경에서 상용 서비스의 쿠버네티스 클러스터를 구성할 때 유용

  • ingress-nginx 컨트롤러, 헬름, 볼륨 플러그인 cephfs를 프로비저닝하는 cephfs-provisioner, SSL 인증서를 관리하는 cert-manager 등의 추가 구성 요소를 클러스터에 실행

# Kubespray에서 제공하는 클러스터 고가용성 구조

  • Kubeadm처럼 별도의 로드밸런서를 사용하지 않고, 노드 각각의 nginx가 리버스 프록시로 실행
  • nginx-proxy가 전체 마스터 노드를 바라보는 구조로 쿠버네티스의 컴포넌트들은 직접 마스터 노드와 통신하지 않고, 자신의 서버 안 nginx와 통신
  • 마스터 노드의 장애감지는 헬스 체크(health check)를 이용해 nginx가 알아서 처리
  • 쿠버네티스는 **CNI(Container Network Interface)**를 만족하는 다양한 네트워크 플러그인 지원

# 칼리코(calico)

  • 퍼블릭 클라우드 대부분에서 **칼리코(calico)**를 기본 네트워크 플러인으로 사용하며, Kubespray의 기본 설정

  • BGP(layer 3) 기반 네트워킹을 지원하고, IPinIP 터널링 기능을 옵션으로 사용할 수 있음

  • 클러스터 당 최대 5,000개 노드까지 사용할 수 있으며, 클러스터 규모가 크다면 성능과 안정성을 보장하도록 라우팅 정보 공유를 매개하는 라우터 리플렉터 노드(Route Reflector Node)를 둘 것을 권장


# Referenses

  • 쿠버네티스 입문 - 90가지 예제로 배우는 컨테이너 관리 자동화 표준 / 동양북스
Last Updated: 8/12/2020, 1:33:42 PM