본문으로 건너뛰기

클러스터 설계


클러스터 설계 및 설치 섹션 전체는 시험을 위해 외워야할 내용은 없다. (docs에 나와있기 때문)

클러스터 설계

방향성 확립

  1. 목적
    • 학습
    • 개발/테스트
    • 프로덕션
  2. 환경
    • Cloud Managed Service (EKS, GKE 등)
    • 온프레미스
  3. 워크로드, 규모
    • 애플리케이션의 종류 (웹, 빅데이터, AI 등)
    • 애플리케이션의 규모
  4. 트래픽
    • 지속적인 트래픽
    • 간헐적인 폭증

목적별 클러스터 구성 방법

  1. 학습용
    • Minikube 또는 kubeadm을 사용한 단일 노드 클러스터 (로컬 VM 또는 클라우드)
    • Minikube: VirtualBox 같은 가상화 도구로 알아서 VM을 생성하고 그 위에 구성요소를 실행함
    • kubeadm: VM 프로비저닝은 사용자가 직접 해야함
  2. 개발 및 테스트용
    • 단일 마스터 노드 + 다중 워커 노드
    • 도구: kubeadm, GKE, AKS 등
  3. 프로덕션용
    • 고가용성(HA) 구성 필수: 다중 마스터 노드(Multi-master) 권장
    • Turnkey Solutions
      • AWS (Kops), OpenShift, Cloud Foundry, VMware Cloud PKS, Vagrant
    • Hosted Solutions
      • GKE, AKS, EKS, OpenShift Online
정보

Hosted Solutions는 어느정도 이해가 되는데, 왜 오픈소스 사용하지 않고 비용이 드는 Turnkey Solutions 사용하나요?

  • 전체 유지보수 비용 측면에서 바라봐야한다.
  • 문제 해결 측면
    • 오픈 소스 쿠버네티스를 사용하다가 장애가 발생하면 직접 해결해야함
    • Turnkey Solutions를 사용하다가 장애가 발생하면 SLA에 따른 기술 지원을 받을 수 있음
  • 보안
    • 오픈 소스는 업데이트가 매우 빠르지만 그만큼 취약점이 노출될 가능성도 큼
    • Turnkey Solution 업체들은 취약점을 점검한 뒤 안정성이 검정된 버전을 제공함.
    • 기업 입장에서는 보안 사고 한 번의 비용보다 솔루션 비용이 훨씬 저렴함
    • 책임 소재의 리스크도 줄일 수 있음
  • 통합된 부가기능
    • 모니터링, CI/CD, GUI 기능 등등 많은 기능들을 직접 오픈소스 쿠버네티스에 설치하고 운영할 수 있지만, 이들을 운영하는데 사용되는 인력또한 비용이다.

클러스터 규모 및 리소스

  • 최대 지원 규모
    • 노드: 최대 5000개
    • Pod: 최대 150,000개 (노드 당 최대 100개)
    • 컨테이너: 전체 300,000개
  • 리소스 산정
    • 클라우드(GCP, AWS 등)은 노드 수에 따라 적절한 마스터 노드 인스턴스 크기를 자동으로 선택해준다.
    • 온프레미스 구축 시에는 위와같은 클라우드 제공업체의 인스턴스 크기 표(노드 갯수에 따른 마스터 노드 스펙)를 참고하여 마스터 노드 스펙을 정하는 것이 좋다.

스토리지 및 인프라

  • 스토리지
    • 고성능 워크로드를 운영하는 경우: Concurrent한 스토리지 접근을 위해 SSD 기반 스토리지 사용
    • 공유 볼륨(PodPV 등의 목적으로)으로 사용하기 위한 네트워크 기반 스토리지 필요
      • 정적 프로비저닝을 하든 StorageClass로 동적 프로비저닝을 하든..
  • 인프라
    • 물리 서버(Bare Metal) 또는 VM 모두 상관 없음
    • 64비트 리눅스 기반 OS 사용해야함

노드 역할

  • 마스터 노드
    • Control Plane 컴포넌트(kube-apiserver, etcd 등) 실행
    • 프로덕션 환경에서는 마스터 노드에 워크로드를 배치하지 않는 것이 좋음
      • 몰랐는데, 마스터 노드에 기본적으로 워크로드가 배치되지 않는 taint를 적용 시켜놓는 것이 kubeadm이 해주는 것이었다.
    • 대규모 클러스터의 경우 etcd를 마스터 노드에서 분리하여 별도의 클러스터로 구성하기도 함
  • 워커 노드
    • 실제 애플리케이션 워크로드 실행

레퍼런스

  • Udemy - Certified Kubernetes Administrator (CKA) with Practice Tests (Mumshad)