Labels and Selectors
k get pods --selector env=dev | wc -l // label이 env=dev 인 파드의 개수 조회
k get pods --selector env=dev --no-headers // 헤더 제외하고 조회
단, 위의 옵션으로 조회하면 아래와 같이 결과가 출력된다.
위의 헤더 부분까지 포함하여 총 8 이라고 표시되는 것이므로, 실제로 파드의 개수는 7개다.
헤더 부분을 제외하고 조회하고 싶다면 --no-headers 를 추가하면 된다.
pods, replicasets 등 다른 모든 오브젝트에 대해 조회하고 싶다면, all 로 조회하면 된다.
Taints and Tolerations
Create a taint on node01 with key of spray, value of mortein and effect of NoSchedule
taint 설정이 완료되었는지는 describe 를 통해 확인해볼 수 있다.
이미지 가장 하단에 설정이 완료되었음을 확인
bee 라는 이름의 파드를 nginx 이미지로 생성하고, mortein 이라는 taint에 대응하는 toleration 을 설정한다.
먼저 bee 파드를 만들기 위한 bee.yaml 파일을 생성한다. 명령어로 생성하지 않는 이유는, toleration 을 파드 생성 단계에서 적용하기 위함이다.
위와 같이 파일을 작성한다. tolerations 필드를 추가함에 주목하자. 어떠한 옵션값을 넣어줘야 할 지 모른다면 공식 doc을 참고해서 진행한다. 해당 파일로 파드를 생성하고 완료되었음을 확인.
node 에 taint 가 설정되어 있는지는 describe 명령어를 통해 확인해볼 수 있다.
여기서 taint 를 제거하고 싶다면, "-" 를 붙인다.
Node Affinity
yaml 파일로 label key 를 설정할 때, 쿠버네티스 doc 부분을 참조하는 것을 기억하자.
yaml 파일을 kubectl 로 생성하고, 파일을 수정한다.
이 때, spec 하위에 affinity 부분을 추가한다. 해당 내용은 쿠버네티스 doc을 참고한다.
Assign Pods to Nodes using Node Affinity | Kubernetes
Static Pod
kubelet의 설정은 아래 경로에서 확인할 수 있다.
cat /var/lib/kubelet/config.yaml
kubelet의 설정 중, staticpod의 경로를 확인할 수 있다.
기본적으로 위와 같이 설정되어 있다. 위 config.yaml을 통해 static pod의 경로를 확인할 수 있음을 기억하자.
이름이 static-busybox 이고 buxybox 이미지를 사용하며, sleep 1000 커맨드를 포함하는 static pod를 생성한다.
다음 문제도 진행해본다.
static-greenbox-node01 static pod를 삭제해야 한다.
하지만 kubectl 명령어로는 삭제해도 다시 살아나는 것을 확인할 수 있다. static pod는 kubectl 로 삭제하는 것이 불가능하다. 따라서, manifest 파일을 찾아 직접 삭제해야한다.
해당 manifest 파일은 node01의 파드이기 때문에 해당 노드로 내에 존재한다. 따라서 node01로 접속하여 삭제해야 한다.
노드의 내부 IP를 확인하고 ssh 를 통해 노드 내로 직접 접속한다.
노드 내에서 manifest 파일을 찾는다.
경로로 이동하여 파일을 삭제하고 노드에서 나와 다시 확인해보면, 파드가 삭제되는 것을 확인할 수 있다.
Multiple Schedulers
ConfigMap 생성하는 과정을 확인해본다.
config 파일은 강의에서 주어진다. 이 파일을 활용하여 configmap 을 생성한다.
새로운 스케줄러 배포하기
/root/my-scheduler.yaml 주어진 파일 통해서 스케줄러를 새로 배포해본다.
기본 스케줄러의 이미지와 동일한 이미지를 사용하기 위해 아래와 같이 조회해본다.
yaml 파일 수정 후, 스케줄러를 생성한다.
파드를 새로 생성할 때 새로 생성된 스케줄러를 지정하는 방법을 확인해본다. 아주 간단하다.
'IT > CKA' 카테고리의 다른 글
CKA 실습 - Cluster Maintenance (0) | 2023.08.15 |
---|---|
CKA 실습 - Logging / Update / Application Lifecycle Management (0) | 2023.08.07 |
CKA 실습 - Core concepts (0) | 2023.07.29 |
CKA 준비과정 - Networking (6) / Ingress (0) | 2023.07.19 |
CKA 준비과정 - Networking (5) / DNS (0) | 2023.07.17 |