노드 문제 디버깅

이 페이지에서는 사전 설치된 디버깅 도구 제품군을 사용하여 VMware용 Anthos 클러스터(VMware용 GKE)에서 노드 문제를 디버깅하는 방법을 설명합니다.

개요

VMware용 Anthos 클러스터(VMware용 GKE)의 생성된 각 클러스터는 여러 노드로 구성됩니다. 각 노드에는 디버깅 컨테이너인 debug-toolbox의 압축을 풀고 실행하는 셸 스크립트인 CoreOS의 toolbox 배포가 포함되어 있습니다. debug-toolbox는 몇 가지 유용한 디버깅 도구가 포함된 컨테이너 이미지입니다.

특정 노드에 문제가 발생하면 영향을 받는 노드에 연결하여 디버깅을 시도하고 toolbox 스크립트를 실행하여 debug-toolbox 컨테이너의 압축을 풀고 실행한 후 컨테이너에 포함된 도구를 실행할 수 있습니다.

debug-toolbox 컨테이너에 포함된 도구

debug-toolbox 컨테이너는 다음 패키지가 포함된 Debian 기본 이미지를 실행합니다.

  • bash
  • curl
  • dnsutils
  • hping3
  • iperf3
  • lsof
  • netcat
  • mtr
  • procps
  • strace
  • tcpdump
  • traceroute
  • util-linux

위 도구는 컨테이너에 포함되어 있으므로 인터넷에 연결할 필요가 없습니다. 추가 디버깅 도구를 설치하려면 apt-get을 사용합니다. 이 경우 인터넷에 연결해야 합니다.

toolbox 사용

  1. SSH를 통해 클러스터 노드에 연결합니다.

  2. toolbox 명령어를 실행합니다.

    sudo toolbox

    이 명령어는 debug-toolbox 컨테이너를 시작합니다.

  3. 컨테이너 내부에서 도구 중 하나를 실행합니다. 예를 들면 tcpdump입니다.

  4. 작업이 완료되면 컨테이너를 종료하고 노드에 대한 SSH 연결을 닫습니다.

노드 문제 감지기

VMware용 Anthos 클러스터 버전 1.4부터 클러스터의 모든 노드에서 사용 설정된 노드 문제 감지기를 통해 몇 가지 일반적인 노드 문제를 빠르게 감지할 수 있습니다. 노드 문제 감지기는 발생 가능한 문제를 계속 확인하고 노드의 이벤트 및 조건과 똑같이 보고합니다. 노드가 오작동하면 노드에서 kubectl describe를 실행하고 해당 이벤트 및 조건을 찾아 노드 문제 감지기가 문제를 감지했는지 확인할 수 있습니다.

노드 문제 감지기 모니터링은 노드에서 몇 가지 조건을 생성합니다. 보고된 조건이 KubeletUnhealthy 또는 ContainerRuntimeUnhealthy인 경우 해당 systemd 서비스(kubelet 또는 Docker)를 다시 시작하면 노드를 다시 정상으로 만드는 데 도움이 될 수 있습니다.

VMware용 Anthos 클러스터 버전 1.5부터 kubelet 및 docker 시스템 서비스 자동 복구가 노드 문제 감지기에서 사용 설정됩니다. 노드 문제 감지기에서 노드의 KubeletUnhealthy 또는 ContainerRuntimeUnhealthy 조건이 감지되면 마지막 재시작 이후 기간이 특정 임곗값을 초과할 때 kubelet 또는 docker 서비스 재시작이 자동으로 시도됩니다.