스케줄링
컨테이너를 새롭게 생성할 때 어느 서버에 생성할 것인지 결정하는 것
컨테이너를 생성하기 전에 특정 목적에 부합하는 Node를 선택하는 작업
여러 개의 Node를 사용하는 경우 해당된다.
nodeSelector
Node의 Label을 이용해서 선택하는 방법
모든 Node에는 기본적으로 설정되어 있는 라벨이 있고 이를 이용해서 Node를 특징 별로 분류해서 선택할 수 있다.
필요한 경우 추가할 수 있다.
yaml파일에 작성할 때는 사용할 Node의 기준이 되는 라벨을 지정하면 된다.
kubectl get nodes --show-labels
▶ Node Label 삭제
Label 뒤에 -(대시)를 입력하면 삭제됨
kubectl label nodes Node이름 삭제할Label명-
컨트롤러
클러스터의 상태를 관찰하고 필요한 경우 변경 수행하거나 요청하는 제어 루프
각 컨트롤러는 현재 클러스터 상태를 원하는 상태에 더 가깝게 이동하려고 한다.
여러 개의 컨트롤러가 있다. 내가 정한 상태를 항상 유지하려고 노력한다.
선언적 작업을 수행할 때 컨트롤러에 의해 관리된다.
기본 리소스 별 컨트롤러들(Deployment Controller, Node Controller 등)이 컨트롤러 매니저 컴포넌트에 의해 관리된다.
작업 수행 방식
1. 명령형(Imperative)
kubectl 명령어로 직접 실행하고 결과를 돌려 받는 방식
2. 선언적(Declarative)
yaml 파일에 최종적으로 도달해야 하는 상태를 명시하고 kubectl apply를 통해 수행하는 방식
쿠버네티스는 선언적 방식을 지향
최종적으로 도달해야 할 상태가 되기 위한 동작을 컨트롤러가 결정
커스텀 리소스
쿠버네티스에서 기본적으로 제공하는 리소스 외 사용자가 직접 정의해서 사용하는 리소스
사용 단계
1. CRD 생성
2. 커스텀 리소스 생성
3. 컨트롤러 구현 및 실행
4. 컨트롤러 커스텀 리소스 생성을 감지하고 작업을 수행
기타 오브젝트
상황에 따라 Pod를 사용하는 상위 오브젝트들
항목 | 설명 |
Jobs | 특정 동작을 수행하고 종료해야하는 작업을 위한 오브젝트 |
DaemonSets | 쿠버네티스의 모든 노드에 동일한 포드를 하나씩 생성하는 오브젝트 |
StatefulSets | 상태를 갖는 포드를 관리하기 위한 오브젝트 |
'Programming > Cloud' 카테고리의 다른 글
DAY 179. 쿠버네티스(Kubernetes) - HPA (0) | 2022.02.18 |
---|---|
Day 178. 쿠버네티스(Kubernetes) - Service Object (0) | 2022.02.17 |
Day 177. 쿠버네티스(Kubernetes) - Deployment 사용 (0) | 2022.02.16 |
DAY 176. 쿠버네티스(Kubenetest) - Replica Set (0) | 2022.02.15 |
DAY 175. 쿠버네티스(Kubernetes) - Yaml 파일 (0) | 2022.02.14 |