Home [k8s] 개념
Post
Cancel

[k8s] 개념

[k8s] 개념

개요

  • 쿠버네티스를 사용하려면, 쿠버네티스 API 오브젝트로 클러스터에 대해 사용자가 바라는 상태를 기술해야 함
    • 어떤 애플리케이션이나 워크로드를 구동시키려고 하는지
    • 어떤 컨테이너 이미지를 쓰는지
    • 복제의 수는 몇 개인지
    • 어떤 네트워크와 디스크 자원을 쓸 수 있도록 할 것인지
  • 바라는 상태를 설정하는 방법
    • 쿠버네티스 API를 사용해서 오브젝트를 만드는 것
    • 대개 kubectl이라는 CLI(커맨드라인 인터페이스)를 사용
    • 클러스터와 상호 작용하고, 바라는 상태를 설정하거나 수정하기 위해서 쿠버네티스 API를 직접 사용할 수 있음
  • 바라는 상태를 설정하면
    • 쿠버네티스 컨트롤 플레인은 Pod Lifecycle Event Generator(PLEG)를 통해서 클러스터의 현재 상태를 바라는 상태와 일치시킴
    • 쿠버네티스 컨트롤 플레인은 클러스터에서 실행 중인 프로세스의 묶음(collection)으로 구성


  • 쿠버네티스 마스터는 클러스터 내 마스터 노드
  • 클러스터 내 마스터 노드가 아닌 각각의 노드는 다음 두 개의 프로세스를 구동
    • 쿠버네티스 마스터와 통신하는 kubelet
    • 각 노드의 쿠버네티스 네트워킹 서비스를 반영하는 네트워크 프록시인 kube-proxy

쿠버네티스 오브젝트

  • 쿠버네티스는 시스템의 상태를 나타내는 추상 개념을 다수 포함
    • 컨테이너화되어 배포된 애플리케이션, 워크로드
    • 이에 연관된 네트워크와 디스크 자원
    • 그 밖에 클러스터가 무엇을 하고 있는지에 대한 정보
  • 이런 추상 개념은 쿠버네티스 API 내 오브젝트로 표현

기초적인 쿠버네티스 오브젝트

높은 수준의 추상 개념

쿠버네티스 컨트롤 플레인

  • 쿠버네티스 마스터와 kubelet 프로세스와 같은 쿠버네티스 컨트롤 플레인의 다양한 구성요소는 쿠버네티스가 클러스터와 통신하는 방식으로 관장
  • 컨트롤 플레인
    • 시스템 내 모든 쿠버네티스 오브젝트의 레코드를 유지
    • 오브젝트의 상태를 관리하는 제어 루프를 지속적으로 구동
    • 컨트롤 플레인의 제어 루프
      • 클러스터 내 변경이 발생하면 언제라도 응답
      • 시스템 내 모든 오브젝트의 실제 상태가 사용자가 바라는 상태와 일치시킴

쿠버네티스 마스터

  • 클러스터에 대해 바라는 상태를 유지할 책임
  • kubectl CLI와 같은 것을 사용해서 쿠버네티스로 상호작용 == 쿠버네티스 마스터와 통신
  • “마스터”는 클러스터 상태를 관리하는 프로세스의 묶음
  • 주로 모든 프로세스는 클러스터 내 단일 노드에서 구동
  • 이 노드가 바로 마스터
  • 마스터는 가용성과 중복을 위해 복제될 수 있음

쿠버네티스 노드

  • 애플리케이션과 클라우드 워크플로우를 구동시키는 머신(VM, 물리 서버 등)
  • 쿠버네티스 마스터는 각 노드를 관리
  • 직접 노드와 직접 상호 작용할 일은 거의 없을 것

References

This post is licensed under CC BY 4.0 by the author.

AMQP: Advanced Message Queuing Protocol

[Spring] Core Technologies