이 페이지에서는 사전 설치된 디버깅 도구 모음을 사용하여 Google Distributed Cloud에서 노드 문제를 디버깅하는 방법을 설명합니다.
추가 지원이 필요하면 Cloud Customer Care에 문의하세요.개요
생성하는 각 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
사용
toolbox
명령어를 실행합니다.sudo toolbox
이 명령어는
debug-toolbox
컨테이너를 시작합니다.컨테이너 내부에서 도구 중 하나를 실행합니다. 예를 들면
tcpdump
입니다.작업이 완료되면 컨테이너를 종료하고 노드에 대한 SSH 연결을 닫습니다.
노드 문제 감지기
VMware용 GKE 버전 1.4부터 클러스터의 모든 노드에서 사용 설정된 노드 문제 감지기를 통해 몇 가지 일반적인 노드 문제를 빠르게 감지할 수 있습니다. 노드 문제 감지기는 발생 가능한 문제를 계속 확인하고 노드의 이벤트 및 조건과 똑같이 보고합니다. 노드가 오작동하면 노드에서 kubectl describe
를 실행하고 해당 이벤트 및 조건을 찾아 노드 문제 감지기가 문제를 감지했는지 확인할 수 있습니다.
노드 문제 감지기 모니터링은 노드에서 몇 가지 조건을 생성합니다. 보고된 조건이 KubeletUnhealthy
또는 ContainerRuntimeUnhealthy
인 경우 해당 systemd
서비스(kubelet 또는 Docker)를 다시 시작하면 노드를 다시 정상으로 만드는 데 도움이 될 수 있습니다.
Google Distributed Cloud 버전 1.5부터 kubelet 및 docker systemd 서비스 자동 복구가 노드 문제 감지기에서 사용 설정됩니다. 노드 문제 감지기에서 노드의 KubeletUnhealthy
또는 ContainerRuntimeUnhealthy
조건이 감지되면 마지막 재시작 이후 기간이 특정 임곗값을 초과할 때 kubelet 또는 docker 서비스 재시작이 자동으로 시도됩니다.