본문 바로가기
Kubernetes

Kubernetes Overview

by Nhahan 2023. 4. 7.

 

  • Master: 쿠버네티스를 전반적으로 컨트롤 하는 서버
  • Node: 한 마스터에 여러 노드들이 연결되어 자원을 제공하는 서버. 클러스터 전체의 자원을 늘리고 싶다면 노드를 추가.
  • Namespace: 클러스터 안의 Namespace가 쿠버네티스 오브젝트들을 독립된 공간으로 분리되게 만듦.
  • Pod: Namespace 안에는 쿠버네티스의 최소 배포 단위인 Pod들이 있음.
  • Pod Service: Pod들이 외부로부터 연결이 가능하도록 함. 단, 서로 다른 Namespace들 간 내부 통신은 불가능.
  • Container: Container 안에는 하나의 앱이 동작하고, Pod 안에는 여러 컨테이너가 존재 가능.
  • Volume: Pod이 날아가면 내부의 데이터도 날아가기 때문에 Pod이 재생성될 때나 서로 다른 Pod끼리 데이터를 공유할 때 데이터를 저장하는 곳.
  • ResourceQuota: Namespace 레벨에서 자원 할당을 관리하는 쿠버네티스 오브젝트.
  • LimitRange: Pod/Container 레벨에서 자원 할당을 관리하는 쿠버네티스 오브젝트.
  • ConfigMap: key/value 형태의 평문 configuration 관리 오브젝트.
  • Secret: key/value 형태의 암호화된 configuration 관리 오브젝트. (기본은 Base64, 하지만 KMS-Key Mangement Service-로 encryption 추가 가능)
  • Controller: Pod을 관리하는 Control Loop
    • Control Loop: Loop인 이유는 반복되는 일정에 따라 Loop을 돌기 때문. (검색-비교-조정-reconciliation period 사이클)
    • Replication Controller, ReplicateSet: Pod이 죽으면 되살리거나 개수를 늘리거나 줄임. (Scale In / Scale Out)
    • Deployment: v1 Pod을 v2로 업데이트해줌. 문제가 생길시 롤백을 하기 쉽게 해줌.
    • DaemonSet: 한 노드에 하나의 Pod만 돌아가게 해줌. 노드 하나에 여러개의 Pod을 띄울 수 있으나, one Pod per Node 추천. (리소스 관리, 간섭 통제 측면)
    • CronJob: 특정 Job을 수행할 Pod을 잠깐 띄움.

 


 

 

그렇다면 one container per Pod이라는 것도 유효하지 않을까라고 생각해서 찾아보니 공식 문서에 one-container-per-Pod 용어가 대놓고 있었다. 이 역시 DaemonSet에서 얻을 수 있었던 이점과 동일한 장점을 가져가기 위함인 것 또한 알 수 있었다.

댓글