이 섹션에서는 Anthos Service Mesh를 사용할 때의 문제를 해결하는 방법을 설명합니다. 추가 지원이 필요하면 지원 받기를 참조하세요.
문제 해결 단계
Anthos Service Mesh 문제를 가장 효율적으로 해결하는 일반적인 방법은 다음과 같습니다.
- 자동 구성 검증 도구 사용
- 일반적인 문제와 알려진 해결책 확인
- 문제 범위 좁히기
- 관련 로그 및 정보 검토
- 진단 로그 수집 및 도움말 탐색
자동 검증 도구 사용
Anthos Service Mesh에는 문제를 해결하고 향후 재발을 방지하는 데 유용한 자동 진단 및 구성 검증 도구가 포함되어 있습니다. 다음 섹션에서는 이러한 도구의 사용 방법에 대해 설명합니다.
istioctl analyze
istioctl analyze
진단 도구는 일반적인 구성 문제를 감지할 수 있습니다.
이 안내에 따라 istioctl
을 설치합니다.
istioctl analyze
는 클러스터 구성을 읽은 후, 문제가 발견되면 정보 메시지를 제공하고 구제 조치를 제안합니다. 이 도구는 실제 클러스터 또는 로컬 구성 파일 모음에 대해 실행할 수 있습니다. 또한 이 둘의 조합을 대상으로 실행할 수 있으므로 클러스터에 변경사항을 적용하기 전에 문제가 발견됩니다. 자세한 내용은 istioctl analyze
로 구성 진단을 참조하세요.
istioctl analyze
가 감지하는 오류에 대한 자세한 내용은 구성 분석 메시지를 참조하세요.
실제 클러스터 분석
다음 명령어를 사용하여 실제 클러스터를 분석합니다.
istioctl analyze -A
istioctl analyze
가 감지한 구성 문제가 이미 알려져 있는 경우 이를 해결하는 데 유용한 정보가 포함된 메시지가 표시됩니다. 예를 들어 Istio 사이드카 삽입을 사용 설정하는 라벨을 네임스페이스에 올바르게 지정하지 않은 일반적인 실수를 한 경우 다음 메시지가 생성됩니다.
Warn [IST0102] (Namespace default) The namespace is not enabled for Istio injection. Run 'kubectl label namespace default istio-injection=enabled' to enable it, or 'kubectl label namespace default istio-injection=disabled' to explicitly mark it as not needing injection
문제가 지속되면 다음 섹션을 참조하여 이미 알려진 문제인지 확인하세요.
일반적인 문제 및 해결책 확인
다음과 같이 Anthos Service Mesh 기능 영역으로 그룹화한 일반적인 문제 및 해결책 섹션에 나온 문제와 현재 증상이 일치하는지 확인하면 시간을 줄일 수 있습니다.
그래도 문제가 해결되지 않으면 다음 섹션을 참조하세요.
문제 범위 좁히기
Anthos Service Mesh는 여러 연동 기술로 구성되어 있습니다. 따라서 특정 유형의 문제는 특정 기능 영역 또는 구성요소와 관련이 있습니다. 이러한 각 구성요소는 유용한 자체 로그를 생성합니다. 제공되는 정보의 양을 수동으로 분석하기 전에 다음 질문에 답변하는 방식으로 해결할 문제의 범위를 좁힙니다.
- 문제가 제어 영역 또는 데이터 영역(예: Istiod 또는 Envoy 프록시)에서 발생하나요?
- 어떤 기능 영역에서 네트워킹, 원격 분석, 보안 등의 문제가 발생하나요?
- 서비스 메시 전체 또는 특정 배포에 트래픽 손실이 있나요?
- 서비스 메시에 트래픽을 확장하는 기능 부족으로 문제가 발생하거나 악화되나요?
- 지연 시간이나 다른 성능 문제를 발생시키나요?
- 요청 시 문제를 재현할 수 있나요?
- 최근 Istio, GKE 등의 구성을 변경한 후 문제가 시작되었나요?
- 서비스 메시 내의 트래픽이 증가 또는 급증했나요?
- 이 클러스터에 눈에 띄는 기능이 사용 설정되어 있거나 일반적이지 않은 배포가 있나요?
- 높은 CPU 사용률 또는 메모리 사용률이 관찰되나요? 그렇다면 규모에 맞는 예상 사용률은 얼마인가요?
- 고려할 할당량 제한이 있나요?
제어 영역 상태 보기
다음 명령어는 Anthos Service Mesh 제어 영역의 상태를 이해하는 데 도움이 될 수 있습니다.
kubectl get pods -n istio-system
kubectl describe -n istio-system
- istio-system의 모든 pod에 해당:
kubectl logs -n istio-system -l istio --all-containers
istioctl version
istioctl proxy-status
kubectl get configmap istio -o yaml && kubectl get configmap istio-sidecar-injector -o yaml
kubectl top pods -n istio-system
다음 명령어를 사용하여 배포 규모를 확인합니다.
kubectl get nodes
kubectl get services --all-namespaces
kubectl get pods --all-namespaces
관련 로그 및 정보 검토
문제의 범위를 좁힌 후에는 특정 로그와 정보에 보다 효과적으로 집중할 수 있습니다. Anthos Service Mesh가 생성하는 로그 및 로그에 포함된 정보를 해석하는 방법에 대한 자세한 내용은 Anthos Service Mesh 로그 해석을 참조하세요.
진단 로그 수집 및 도움말 탐색
다른 문제 해결 단계가 실패한 경우 진단 로그를 수집하여 추가 지원을 받을 수 있습니다. 이 스크립트를 사용하여 모든 클러스터의 Kubernetes 및 Istio 리소스/로그를 istio-dump
폴더에 씁니다. 지원 받기의 설명대로 지원팀에 문의할 때 이 폴더를 준비합니다.