이 섹션에서는 Anthos Service Mesh를 사용할 때의 문제를 해결하는 방법을 설명합니다. 추가 지원이 필요하면 지원 받기를 참조하세요.
문제 해결 단계
Anthos Service Mesh 문제를 가장 효율적으로 해결하는 일반적인 방법은 다음과 같습니다.
- 자동 구성 검증 도구 사용
- 일반적인 문제와 알려진 해결책 확인
- 문제 범위 좁히기
- 관련 로그 및 정보 검토
- 진단 로그 수집 및 도움말 탐색
설치 중 오류 kpt
개 발생
install_asm
을 지원되지 않는 kpt
버전과 함께 사용해 Anthos Service Mesh를 설치하면 install_asm
에서 다음 오류 메시지를 출력합니다.
2021-07-14T15:54:58.380312 install_asm_1_9_3: Downloading ASM.. % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 41.7M 100 41.7M 0 0 31.1M 0 0:00:01 0:00:01 --:--:-- 31.1M 2021-07-14T15:54:59.777425 install_asm_1_9_3: Downloading ASM kpt package... 2021-07-14T15:54:59.805267 install_asm_1_9_3: Running: '/usr/bin/kpt pkg get --auto-set=false https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.9-asm asm' 2021-07-14T15:54:59.832100 install_asm_1_9_3: ------------- error: unknown flag: --auto-set 2021-07-14T15:54:59.907493 install_asm_1_9_3: [WARNING]: Failed, retrying...(1 of 3) 2021-07-14T15:55:01.936275 install_asm_1_9_3: Running: '/usr/bin/kpt pkg get --auto-set=false https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.9-asm asm' 2021-07-14T15:55:01.963543 install_asm_1_9_3: ------------- error: unknown flag: --auto-set 2021-07-14T15:55:02.043638 install_asm_1_9_3: [WARNING]: Failed, retrying...(2 of 3) 2021-07-14T15:55:04.074541 install_asm_1_9_3: Running: '/usr/bin/kpt pkg get --auto-set=false https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.9-asm asm' 2021-07-14T15:55:04.101990 install_asm_1_9_3: ------------- error: unknown flag: --auto-set 2021-07-14T15:55:04.176750 install_asm_1_9_3: [WARNING]: Failed, retrying...(3 of 3)
이러한 오류가 표시되면 최신 버전의 install_asm
을 다운로드하세요. install_asm
스크립트가 다음 버전 이상이어야 합니다.
- 버전 1.8 - 1.8.6-asm.5+config1
- 버전 1.9 - 1.9.6-asm.2+config1
- 버전 1.10 - 1.10.2-asm.3+config1
istioctl install
을 사용하여 Anthos Service Mesh를 설치하기 위해 anthos-service-mesh-package
를 다운로드할 경우 kpt
가 지원되지 않는 버전이면 다음 오류 메시지가 표시됩니다.
Package "asm": Fetching https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages@release-1.10-asm From https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages * branch release-1.10-asm -> FETCH_HEAD Error: Kptfile at "https:/github.com/GoogleCloudPlatform/anthos-service-mesh-packages/asm@release-1.10-asm" has an old version ("v1alpha1") of the Kptfile schema. Please update the package to the latest format by following https://kpt.dev/installation/migration.
Anthos Service Mesh 설치에는 kpt
의 1.x 이전 버전이 필요합니다. 셸 세션은 kpt
버전 0.39.2를 사용하도록 설정되어야 합니다. 다음 명령어를 실행하여 kpt
버전을 가져올 수 있습니다.
kpt version
출력은 다음과 비슷합니다.
0.39.2
kpt
버전이 1.0보다 크면 환경 설정을 참조하여 운영체제에 필요한 버전을 다운로드합니다.
자동 검증 도구 사용
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 로그 해석을 참조하세요.