노드 문제 디버깅

이 페이지에서는 사전 설치된 디버깅 도구 모음을 사용하여 노드 문제를 디버깅하는 방법을 설명합니다.

개요

생성된 각 GKE On-Prem 클러스터는 여러 노드로 구성됩니다. 각 GKE On-Prem 노드에는 디버깅 컨테이너인 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 연결을 닫습니다.

노드 문제 감지기

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

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