Anthos Service Mesh 단계별 문제 해결

이 섹션에서는 Anthos Service Mesh를 사용할 때의 문제를 해결하는 방법을 설명합니다. 추가 지원이 필요하면 지원 받기를 참조하세요.

문제 해결 단계

Anthos Service Mesh 문제를 가장 효율적으로 해결하는 일반적인 방법은 다음과 같습니다.

  1. 자동 구성 검증 도구 사용
  2. 일반적인 문제와 알려진 해결책 확인
  3. 문제 범위 좁히기
  4. 관련 로그 및 정보 검토
  5. 진단 로그 수집 및 도움말 탐색

설치 중 오류 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 이상이면 필수 kpt 버전 다운로드를 참조하여 필요한 버전을 다운로드합니다.

자동 검증 도구 사용

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 로그 해석을 참조하세요.