- Pod 개념(복습) 및 사용
- livenessProbe를 사용한 self-healing Pod
- init container
- infra container(pause) 이해
- static pod 만들기 ← 오늘 볼 내용
- Pod에 resource 할당
- 환경변수를 이용해 컨테이너에 데이터 전달
- pod 구성 패턴의 종류
5. static pod 만들기
static pod는 클러스터 노드에서 직접 실행되는 파드로, Kubernetes 시스템 컴포넌트를 위한 파드다.
static pod는 kubelet이 노드에서 직접 관리하며, Kubernetes API 서버와 상관없이 kubelet이 자신의 노드에 배포한다.
다시말해, API 서버를 거치지 않고 원하는 노드에 직접 파드를 배포할 수 있으며 이 일을 kubelet이 처리한다.
그럼 static pod는 어떻게 만들까?
각 노드에는 static pod가 실행되도록 yaml파일을 보관할 수 있는 디렉토리가 있다.
각 노드의 kubelet 데몬은 해당 디렉토리의 yaml파일 존재 유무를 검토하고 존재하면 yaml파일의 양식대로 파드를 자신의 노드에 배포한다.
만약 해당 yaml파일이 삭제되면 kubelet이 자신의 노드에 배포된 파드를 함께 제거한다.
static pod를 위한 디렉토리는 기본적으로 '/etc/kubernetes/manifests/' 디렉토리에 위치한다.
위 디렉토리에 간단한 yaml파일을 넣어서 static pod를 배포해보자.
static pod 생성
먼저 아무 노드로 가서 '/etc/kubernetes/manifests/' 디렉토리에 접근한다.
# 아무 노드에서 '/etc/kubernetes/manifests/' 디렉토리로 접근
cd /etc/kubernetes/manifests/
cat 명령이나 vi 에디터를 사용하여 다음 내용을 입력한다.
# static-pod.yaml
apiVersion: v1
kind: Pod
metadata:
labels:
run: static-web
name: static-web
spec:
containers:
- image: nginx:1.25
name: static-web
ports:
- containerPort: 80
실행되고 있는 pod를 보면 우리가 지정한 파드의 이름에 현재 yaml파일이 존재하는 노드의 이름이 붙어서 생성된다.
위 파드는 API서버의 개입없이 우리가 직접 노드의 디렉토리에 입력한 것으로 kubelet에 의해 실행되었다.
그렇기 때문에 master에서 위 파드를 삭제하면 삭제는 되지만 곧바로 다시 실행한다.
static pod 디렉토리에 대한 설정
static pod 디렉토리는 '/etc/kubernetes/manifests/' 디렉토리가 아닐 수도 있다.
저 디렉토리 위치 또한 우리가 직접 지정해 줄 수도 있다.
쿠버네티스 kubelet의 세부 설정이 기록되어있는 파일의 위치는 '/var/lib/kubelet/config.yaml' 이다.
해당 파일의 42번 라인을 보면 staticPodPath가 있고 우리가 yaml파일을 만든 경로가 있다.
42번 라인의 경로를 우리가 원하는 대로 수정하면 kubelet은 해당 경로를 검토하여 static pod를 생성한다.
만약 위 경로를 수정하고 제대로 적용되는 지 확인하려면 kubelet 데몬을 반드시 restart 시켜야 한다.
master 노드의 static pod 경로에는 무엇이 있을까?
익숙한 이름의 파드가 보인다.
보다시피 master 노드에는 API서버, controller, scheduler, etcd 파드가 있다.
위 파드들은 master 노드의 static pod로서 항상 동작 중에 있는 것이다.
master 노드에도 마찬가지로 yaml파일을 위 디렉토리에 저장하면 master 노드에 파드가 static으로 실행된다.
하지만 이는 권장하지 않는다.
master 노드는 worker 노드들을 관리하고 운영하는 데 힘을 쏟아야 하는데 다른 작업 처리를 위해 사용하는 것은 좋지 않기 때문이다.
Static 파드는 클러스터 노드 구성의 일부로 간주하며 주로 클러스터 노드에 대한 중요한 시스템 서비스를 제공하는 데 사용되고, Kubernetes 관리자가 직접 관리한다.
해당 내용은 CKA 자격증 시험에도 자주 나오는 내용으로 숙지하면 좋다.
아래 영상을 참고했습니다.
https://youtube.com/playlist?list=PLApuRlvrZKohaBHvXAOhUD-RxD0uQ3z0c&si=hbPclcPuc-6lTNdE
'Kubernetes' 카테고리의 다른 글
Kubernetes 기초 - Pod(7) (0) | 2023.12.09 |
---|---|
Kubernetes 기초 - Pod(6) (0) | 2023.12.08 |
Kubernetes 기초 - Pod(4) (0) | 2023.12.07 |
Kubernetes 기초 - Pod(3) (0) | 2023.12.07 |
Kubernetes 기초 - Pod(2) (0) | 2023.12.06 |