반응형
static pod
- static pod는 kube-api가 아닌 kubelet에 의해 직접 관리됨 (etcd, kube-apiserver, kube-controller-manager, kube-scheduler)
- static pod는 뒤에 node명이 명시됨
- staticPodPath 경로는 현재 동작하고 있는 프로세스 kubelet의 config.yaml설정 파일에 있음
# kubelet에 설정되어있는 config.yaml경로 찾기
# 결과 : /var/lib/kubelet/config.yaml
ps -ef | grep -i kubelet | grep -i config
# config.yaml에 설정되어있는 staticPodPath찾기
# 결과 : /etc/kubernetes/manifests
grep -i static /var/lib/kubelet/config.yaml
## 해당 경로에 static pod를 실행시키는 yaml파일들이 있음
cd /etc/kubernetes/manifests
multi scheduler 설정 방법
1. custom scheduler 생성
# kubelet에 설정되어있는 config.yaml경로 찾기
# 결과 : /var/lib/kubelet/config.yaml
ps -ef | grep -i kubelet | grep -i config
# config.yaml에 설정되어있는 staticPodPath찾기
# 결과 : /etc/kubernetes/manifests
grep -i static /var/lib/kubelet/config.yaml
## 해당 경로에 static pod를 실행시키는 yaml파일들이 있음
cd /etc/kubernetes/manifests
## 여기에 kube-scheduler.yaml파일을 /root로 복사
cp /etc/kubernetes/manifests/kube-scheduler.yaml /root/my-scheduler.yaml
vi /root/my-scheduler.yaml
## image: k8s.gcr.io/kube-scheduler:v1.20.0 버전 기준
## 1.command 부분 아래와 같이 수정
- --leader-elect=false
- --port=10282
- --scheduler-name=my-scheduler
- --secure-port=0
## 2. livenessProbe, startppProbe의 health체크 하는 부분 포트 변경 10282, HTTPS를 HTTP로 변경
httpGet:
host: 127.0.0.1
path: /healthz
port: 10282
scheme: HTTP
2. 새로 생성한 schedule을 pod 에 적용
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
schedulerName: my-scheduler ## custom scheduler
containers:
- image: nginx
name: nginx
반응형