3.2.10 노드 자원 보호하기

estar987·2023년 9월 5일

Kubernetes

목록 보기
21/64

노드

  • 쿠버네티스 스케줄러에서 파드를 할당받고 처리하는 역할을 합니다.
  • 최근에 몇 차례 문제가 생긴 노드에 파드를 할당하면 문제가 생길 가능성이 높습니다.
    하지만 어쩔 수 없이 해당 노드를 사용해야 한다면 영향도가 적은 파드를 할당해 일정 기간 사용하면서 모니터링해야합니다.
  • 즉 노드에 문제가 생기더라도 파드의 문제를 최소화해야합니다.

Cordon

  • 문제가 생길 가능성이 있는 노드라는 것을 쿠버네티스에 알려줘 관리합니다.
  1. 현재 배포된 파드가 없기 때문에 echo-hname.yaml을 적용해(apply) 파드를 생성합니다.

  2. scale 명령으로 배포한 파드를 9개로 늘립니다.

  3. 배포된 9개의 파드가 제대로 작동하는지 확인합니다.

  • 이전까지의 확인은
# kubectl get pods -o wide

를 사용하였는데 이번에는 대신에

# kubectl get pds -o=custom-colums를 사용합니다.

-o는 output을 의미하고 custom-colums는 사용자가 임의로 구성할 수 있는 열을 의미합니다.

[root@m-k8s ~]# kubectl get pods --output=custom-columns=NAME:.metadata.name,IP:.status.podIP,STATUS:.status.phase,NODE:.spec.nodeName
  1. scale로 파드의 수를 3개로 줄입니다.

  2. 각 노드에 파드가 1개씩만 남았는지 확인합니다.

[root@m-k8s ~]# kubectl get pods --output=custom-columns=NAME:.metadata.name,IP:.status.podIP,STATUS:.status.phase,NODE:.spec.nodeName
  1. w3-k8s 노드에서 문제가 자주 발생해 현재 상태를 보존해야합니다.
    w3-k8s 노드에 cordon 명령을 실행합니다.

  2. kubectl get nodes 명령을 실행해 cordon 명령이 제대로 적용됐는지 확인합니다.

  • w3-k8s가 더이상 파드가 할당되지 않는 상태로 변경됐습니다.
  • 이처럼 cordon 명령을 실행하면 해당 노드에 파드가 할당되지 않게 스케줄되 않는 상태(SchedulingDisabled)라는 표시를 합니다.
  1. 파드의 수를 9개로 늘리고 배포된 파드를 확인합니다.
    (w3-k8s에 추가로 배포된 파드가 있는지 확인합니다.)
  • w3-k8s에 배포된 파드는 1개뿐이고 나머지 노드에 파드가 배포되었습니다.
  1. 이번엔 파드 수를 3개로 줄이고 파드 수가 공평하게 노드당 1개씩인지 확인합니다.

  2. uncordon 명령으로 w3-k8s에 파드가 할당되지 않게 설정했던 것을 해제합니다.

profile
System / Cloud / DevOps Engineer

0개의 댓글