DevOps

CKA 예제 리마인더 - 11. Static PODs

Vince_rf 2024. 10. 31. 00:05

클러스터에 있는 모든 네임스페이스에 존재하는 고정 파드 갯수를 찾으세요

나의 답안 )

cd /etc/kubernetes/manifest 에 가서 yaml 파일 갯수 확인 ( 모든 static pod가 같은 노드에 있을 때만 사용해야함 )

Solution )

kubectl get po <Pod> -n=<namespace> -o yaml 을 했을 때

ownerreference를 참조한다

  ownerReferences:
  - apiVersion: v1
    controller: true
    kind: Node
    name: controlplane

이렇게 onwer의 kind가 Node라면 static Pod로 분류된다


새로운 고정 파드를 생성하세요
Name: static-busybox

Image: busybox

command: sleep 1000

나의 답안 )
/etc/kubernetes/manifests 경로 아래에 static-busybox.yaml 파일 생성

apiVersion: v1
kind: Pod
metadata:
  name: static-busybox
  labels:
    role: static-busybox
spec:
  containers:
    - name: static-busybox
      image: busybox:1.28.4
      command:
      - sleep
      - "1000"

Solution )

kubectl run static-busybox --image=busybox --dry-run=client --command -- sleep 1000 -o yaml > /etc/kubernetes/manifests/static-busybox.yaml

 

 

 

 

새롭게 생성된 고정 파드를 삭제하세요

특이사항 : /etc/kubernetes/manifests 경로에 static pod manifest없음

/etc/kubernetes 경로에서 kubelet의 config 파일을 통해 staticPodPath 를 확인해보려고도 했으나 
못찾겠다

Solution ) 

설마했지만 Node가 다르기 때문에 직접 해당 Node로 가서 manifest를 삭제해주어야함

kubectl get nodes -o wide 로 IP 주소 확인 후

ssh 접속 후 /etc/kubernetes/manifests 경로로 찾아갔지만 여전히 manifest 없음

kubelet 설정파일을 찾아봐야함 -> !!!!! 여기서 내가 실수한 점이 kubelet 설정 파일은 /etc/kubernetes 경로에 있는 kubelet.conf가 아니었다

/var/lib/kubelet 경로의 conf.yaml 파일에서 staticPodPath를 확인 할 수 있었고

해당 경로의 manifest 를 삭제해주었다.