k8s란?

v K_Y v·2023년 4월 14일
0

K8S

목록 보기
1/1

오랜만에 복병을 만난 것 같지만... 차근차근 정리

쿠버네티스란?

  • 컨테이너 오케스트레이션 도구
  • k8s라는 표기는 “k”와 “s” 사이에 있는 8글자를 나타내는 약식 표기🧐
  • 도커 스웜 모드처럼 여러 대의 도커 호스트를 하나의 클러스터로 만들어 준다는 점은 같지만 세부적인 기능을 도쿼스웜보다 많이 제공
  • 장점
    - 서버 자원 클러스터링, 마이크로서비스 등 컨테이너 기반의 서비스 운영에 필요한 대부분의 오케스트레이션 기능 제공
    - 성능과 안정성 면에서 신뢰
    - 영속적 볼륨, 스케줄링, 장애 복구 등 컨테이너 기반의 클라우드를 운영할 때 필요한 대부분의 기능과 컴포넌트를 사용자가 직접 커스터마이징 할 수 있음
    - CNCF 및 다른 클라우드 운영도구들과 쉽게 연동
  • 단점
    - 다른 오케스트레이션보다 다양한 지식 필요
    - 사용법이 복잡해 학습 비용이 큼

쿠버네티스 클러스터

  • 컨트롤 플레인을 담당하는 마스터 노드와 애플리케이션 파트가 실행되는 워크노드로 구성

컨트롤 플레인

  • 컨테이너 스케줄링, 서비스 관리, API 요청 처리 등의 작업을 수행
    kube-apiserver : kubectl로부터 명령을 전달받아 실행
    kube-scheduler : 새로운 POD 생성을 감지하고 실행시킬 워커를 선택
    kube-controller-manager : 컨트롤러를 통합, 관리, 실행
    cloud-controller-manager : 클라우드 서비스와 연동해 로드밸런서나 디스크 볼륨 같은 자원을 관리
    etcd : 클러스터의 모든 데이터를 보관하는 일관성, 고가용성을 보장하는 키-값 저장소

노드 컴포넌트

  • POD를 유지시키고 쿠버네티스 런타임 환경을 제공하는 역할을 수행
    kubelet : 마스터의 kube-scheduler와 연동하여 워커 노드에 POD를 배치하고 실행하며 실행 중인 POD의 상태를 정기적으로 모니터링하며 kube-scheduler에 통지
    kube-proxy : 각 노드에서 실행되는 네트워크 프록시

클러스터 설치

  • 쿠버네티스 소프트웨어, CNI(가상 네트워크 드라이버)를 설치해야함
  • CNI 소프트웨어는 플란넬, 칼리코, AWS VPC CNI 등이 있음
  • 마스터 노드에는 etcd라는 데이터베이스, kubectl 설치
  • 워커 노드에는 컨테이너 엔진 설치
  • kubeadm, kops, GKE 등으로 클러스터 설치 가능
  • 설치 시, 확인사항
    - 모든 서버의 시간이 ntp를 통해 동기화돼 있는지 확인
    - 모든 서버의 맥(MAC) 주소가 다른지 확인
    - 모든 서버가 메모리 2GB, 2CPU 이상의 자원을 가지고 있는지 확인
    - 모든 서버의 스왑을 비활성화. 메모리 스왑이 활성화돼 있으면 컨테이너의 성능이 일관되지 않을 수 있음
    swapoff -a
profile
📌 기억하기 위해 남기는 기록들

0개의 댓글