Anthos Service Mesh에서 표준 서비스 문제 해결

참고: 표준 서비스는 Anthos Service Mesh 버전 1.6.8 이상에서 자동으로 지원됩니다.

이 섹션에서는 일반적인 Anthos Service Mesh 문제와 해결 방법을 설명합니다. 추가 지원이 필요하면 지원 받기를 참조하세요.

Kubernetes 서비스가 없는 Kubernetes 워크로드는 표시되지 않습니다.

'Kubernetes 서비스가 없는 Kubernetes 워크로드는 표시되지 않습니다. 각 워크로드에 해당하는 Kubernetes 서비스를 만들어 아래에서 확인하세요.'라는 메시지가 표시되면 표준 서비스로 수동으로 마이그레이션해야 합니다.

이 문제의 두 가지 주요 원인은 다음과 같습니다.

  1. 메시의 클러스터가 이전 버전의 Anthos Service Mesh(1.6.8 미만)를 실행 중임
  2. 정의된 SLO가 있는 서비스가 표준 서비스와 1:1로 매핑되지 않음

메시의 클러스터가 이전 버전의 Anthos Service Mesh를 실행 중임

이전 버전의 ASM(1.6.8 미만)을 실행 중인 클러스터가 있으면 표준 서비스 기반 대시보드를 사용할 수 없습니다. 표준 서비스를 사용하려면 모든 클러스터를 Anthos Service Mesh 1.6.8 이상으로 업그레이드해야 합니다. 자세한 내용은 클러스터가 GKE에 있는 경우 Anthos Service Mesh를 최신 버전으로 업그레이드를, 또는 클러스터가 온프레미스인 경우 온프레미스에서 Anthos Service Mesh 업그레이드를 참조하세요.

정의된 SLO가 있는 서비스가 표준 서비스와 1:1로 매핑되지 않음

Anthos Service Mesh는 표준 서비스로 전환하기 전에 Kubernetes 서비스용 대시보드를 표시했습니다. Kubernetes 서비스와 기본 표준 서비스가 일치하는 경우도 있지만 Kubernetes 서비스가 해당 표준 서비스와 자동으로 일치되지 않거나, 기본 표준 서비스 경계가 바람직하지 않을 수 있습니다.

기본 서비스에서 기본 표준 서비스와 자동으로 일치될 수 없는 서비스 수준 목표(SLO)가 설정되어 있으면 마이그레이션할 수 없습니다. 표준 서비스를 사용하려면 문제가 있는 서비스의 SLO를 삭제해야 합니다. 원하는 경우 이전 SLO를 삭제하기 전에 해당 서비스와 가장 일치하는 표준 서비스의 새 SLO를 생성할 수 있습니다.

내 대시보드에 예상한 콘텐츠가 없음

Service Mesh 서비스 대시보드는 각각 서비스 메시의 표준 서비스로 범위가 지정되며, 여기서 표준 서비스는 모든 관련 워크로드, 리전 등을 포함하는 고수준 논리적 서비스 개념입니다.

기본적으로 각 워크로드 인스턴스의 기존 라벨(pod 또는 WorkloadEntry)은 표준 서비스를 정의하고 이러한 규칙을 낮은 우선순위로 따릅니다.

  1. service.istio.io/canonical-name 라벨은 이미 명시적으로 설정되어 있습니다. 추가 작업은 발생하지 않습니다.
  2. 그렇지 않으면 service.istio.io/canonical-name 라벨이 추가되고 값이 app.kubernetes.io/name 라벨의 값으로 설정됩니다.
  3. 그렇지 않으면 service.istio.io/canonical-name 라벨이 추가되고 값이 app 라벨의 값으로 설정됩니다.
  4. 그렇지 않으면 service.istio.io/canonical-name 라벨이 추가되고 값이 소유 워크로드의 name로 설정됩니다. 이 경우 pod가 단독으로 배포되는 경우 '소유 워크로드', 또는 고수준 조정을 사용하는 경우 배포, StatefulSet 등입니다.

Kubernetes 및 Kube Run/Knative의 대부분의 관용적 사용자의 경우 이러한 규칙이 이미 서비스 및 워크로드를 관리하는 방식에 직접 매핑됩니다.

하지만 일부 더 복잡한 커스텀 사례나 복잡한 사용 사례에서는 기본 휴리스틱으로 서비스가 적절히 캡처되지 않으며 결과적으로 Anthos Service Mesh 대시보드에 예상한 콘텐츠가 포함되지 않습니다.

이 문제는 표준 서비스 범위를 수동으로 정의하여 해결할 수 있습니다.

서비스 범위 수동으로 정의

가능한 경우 자동 기본 그룹화 메커니즘을 사용하는 것이 좋습니다. 하지만 이러한 기본 그룹화를 재정의하려면 Kubernetes pod 및 WorkloadEntry 구성에 service.istio.io/canonical-name Kubernetes 라벨을 적용하면 됩니다.

자세한 내용은 표준 서비스 수동으로 정의를 참조하세요.