반응형
클러스터의 노드를 확인한 후에 구동되어 있는 스케쥴러를 삭제한다.
### 클러스터 구성 확인
root@localhost:~# kubectl get node
NAME STATUS ROLES AGE VERSION
master Ready master 26h v1.23.1
worker Ready <none> 26h v1.23.1
### 마스터 노드 접속 하여 스케쥴러 파드 확인
ssh master
root@localhost:~# kubectl -n kube-system get pod | grep schedule
kube-scheduler-master 1/1 Running 0 6s
### 스케쥴러 파드의 static pod manifest를 이동하여 파드를 제거 처리
root@localhost:~# cd /etc/kubernetes/manifests/
root@localhost:~# mv kube-scheduler.yaml ..
### 스케쥴러 파드 제거 확인
root@localhost:~#kubectl -n kube-system get pod | grep schedule
root@localhost:~#
이제 테스트 파드를 구동한 후에 파드가 스케쥴링 되는지 확인한다.
### 파드 구동
kubectl run test-pod --image=httpd:2.4-alpine
### 파드 스케쥴링 확인
kubectl get pod manual-schedule -o wide
NAME READY STATUS ... NODE NOMINATED NODE
test-pod 0/1 Pending ... <none> <none>
이제 파드를 수동으로 구동하기 위하여 먼저 파드의 yaml 정보를 획득하고, 해당 파일의 nodeName 을 추가한다.
kubectl get pod manual-schedule -o yaml > test-pod.yaml
---
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: "2020-09-04T15:51:02Z"
labels:
run: manual-schedule
managedFields:
...
manager: kubectl-run
operation: Update
time: "2020-09-04T15:51:02Z"
name: manual-schedule
namespace: default
resourceVersion: "3515"
selfLink: /api/v1/namespaces/default/pods/manual-schedule
uid: 8e9d2532-4779-4e63-b5af-feb82c74a935
spec:
nodeName: master # 여기에 노드 이름을 추가
containers:
- image: httpd:2.4-alpine
imagePullPolicy: IfNotPresent
name: manual-schedule
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /var/run/secrets/kubernetes.io/serviceaccount
name: default-token-nxnc7
readOnly: true
dnsPolicy: ClusterFirst
추가한 파일을 강제로 실행하여 노드에 파드가 배치됨을 확인한다.
### 파드 강제 적용
kubectl -f test-pod.yaml replace --force
### 파드 스케쥴링 확인
kubectl get pod manual-schedule -o wide
NAME READY STATUS ... NODE
test-pod 1/1 Running ... master
다시 스케쥴러를 살리고 두 번째 테스트 파드를 실행하여, 스케쥴러에 의하여 정상적으로 스케쥴링 됨을 확인한다.
### 마스터 노드에 접속하여 스케쥴러 위치 변경하여 재구동
ssh master
root@localhost:~# cd /etc/kubernetes/manifests/
root@localhost:~# mv ../kube-scheduler.yaml .
### 스케쥴러 구동 확인
root@localhost:~# kubectl -n kube-system get pod | grep schedule
kube-scheduler-master 1/1 Running 0 16s
### 2번째 테스트 파드 구동 및 확인
kubectl run test-pod2 --image=httpd:2.4-alpine
kubectl get pod -o wide | grep schedule
test-pod 1/1 Running ... master
test-pod2 1/1 Running ... worker
'소프트웨어 아키텍처 > Kubernetes' 카테고리의 다른 글
[Kubernetes] 1-11. Daemonset 구동해보기 (0) | 2022.05.03 |
---|---|
[Kubernetes] 1-10. RBAC 적용해보기 (0) | 2022.05.03 |
[Kubernetes] 1-08. 마스터 노드 정보 확인하기 (0) | 2022.05.03 |
[Kubernetes] 1-07. Node, Pod 리소스 사용량 확인 (0) | 2022.05.03 |
[Kubernetes] 1-06. PV, PVC 를 사용하는 파드 생성 (0) | 2022.05.02 |
댓글