DevOps

CKA 예제 리마인더 - 5. Manual Scheduling

Vince_rf 2024. 10. 27. 03:45


pod의 status가 pending 상태일 때, pending인 이유를 찾으세요

나의 답안 )
kubectl describe po <Pod>를 했을 때 정보가 출력되었지만 pending인 이유까지 유추하지 못함

Solution )
kubectl describe po <Pod>를 했을 때
Node 필드가 <none>임. 이로 미루어보아 스케쥴러가 적합한 노드에 파드를 스케쥴링하지 못함

kubectl get po -n=kube-system

출력된 kube-system 네임스페이스의 파드 중, 스케쥴러가 없는것을 확인함

즉, pending이 되는 이유는 스케쥴러가 없기때문이다.



nginx Pod를 node01에 스케쥴링 하세요

나의 답안 )

nginx Pod Manifest에서 spec.nodeName 필드 추가, nodeName: node01 명시

#nginx파드 삭제
kubectl delete po nginx

#새로운 Manifest 적용
kubectl apply -f nginx.yaml

Solution )

nginx Pod Manifest에서 spec.nodeName 필드 추가, nodeName: node01 명시

# force 옵션을 사용해서 Manifest 적용
## force 옵션을 사용했을 때, 자동으로 nginx 파드가 삭제되고 새로운 Manifest가 적용된 nginx 파드가 생성된다
kubectl replace --force -f nginx.yaml

Optional )

# nginx 파드의 상태를 지속적으로 확인하고 싶다면 watch 옵션을 사용하면 된다
# nginx 파드의 상태에 변화가 생기면 상태를 업데이트 해줌
kubectl get po nginx --watch