CKA 공부 40일차

Design a k8s Cluster

  • k8s 클러스터를 구성하는 목적은 무엇일까? 프로덕션 레벨의 애플리케이션의 배포, 개벌, 테스팅 등등의 목적이 있을 수 있다.

  • 또 웹 애플리케이션, 빅데이터 분석, ML 플랫폼 등 여러 서비스를 제공할 수도 있다.

  • 우리는 k8s Cluster를 디자인 하기 위해 그 목적을 명확히 해야한다.

Purpose

  • 학습의 용도 (minikube, GCP/AWS과 같은 단일 노드 클러스터)

  • 개발과 테스트 용도 (다중 노드 클러스터, kubeadm툴을 사용한 셋팅 또는 퍼블릭 클라우드의 도움)

  • 프로덕션 레벨의 애플리케이션 배포 (아래에서 더 자세하게 다룸)

Hosting Production Applications

  • 고가용성 다중 노드 클러스터

  • Kubeadm이나 GCP/AWS와 같은 플랫폼을 사용하여 클러스터 구축

  • 최대 5000개의 노드

  • 클러스터 내부에는 최대 15만개의 파드

  • 최대 30만개의 클러스터

  • 단일 노드 당 100개의 파드

Cloud or OnPrem?

  • 온프레에서는 kubeadm을 사용할 수 있다.

      • 클라우드라면 GCP의 GKE와 AWS의 Kops를 사용하면 된다.
  • 애져의 AKS

Storage

  • 고성능의 SSD 저장소

  • 네트워크 기반 저장소

  • 분리 볼륨

Node

  • 가상 or 물리 장비

  • 최소 4개의 노드 클러스터

  • 마스터와 워커 노드들

  • 리눅스 X86_64 아키텍처

  • 마스터노드 역시 워크로드로 다뤄질 수 있으나(반드시 마스터 노드에 애플리케이션을 배포하지 말아야하는 것은 아님) 가급적이면 마스터노드는 애플리케이션이 배포되지 않는 편이 좋음

Master Nodes

  • 마스터노드에는 Kube-apiserver, Controller Manager, Scheduler와 ETCD 클러스터로 구성되어있음




© 2022. by minkuk

Powered by minkuk