Cloud Service Mesh GKE 서비스 메시 배포 문제 해결

이 가이드에는 Gateway API 서비스 메시 배포 문제를 해결하는 방법에 대한 정보가 포함되어 있습니다.

status 필드의 정보

모든 Gateway API 리소스에는 컨트롤러 관점에서 리소스의 상태를 반영하는 status 필드가 있습니다. status 필드 외에도 컨트롤러는 게이트웨이 API 리소스에 이벤트를 추가하여 해당 리소스의 작업에 대한 정보를 제공합니다.

예를 들어 다음 명령어를 사용하여 TDMesh의 상태와 이벤트를 검사합니다.

kubectl describe tdmesh td-mesh

출력은 다음과 비슷합니다.

...
Status:
  Conditions:
    Last Transition Time:  1970-01-01T00:00:00Z
    Message:               Waiting for controller
    Reason:                NotReconciled
    Status:                False
    Type:                  Scheduled
Events:
...

이전 상태는 컨트롤러가 이 특정 메시의 조정을 시작하지 않았음을 나타냅니다. 이벤트가 추가되지 않은 채로 이 상태가 5분 넘게 지속되는 경우 다음 섹션인 컨트롤러가 TDMesh 리소스를 조정하지 못하는 것으로 보임을 참조하여 문제를 해결하세요.

비슷한 방법으로 HTTPRoute, TCPRoute, 기타 라우팅 리소스 등 다른 리소스와 관련된 문제를 디버깅할 수 있습니다.

일반적으로 상태와 이벤트는 내부적인 문제가 있음을 나타냅니다.

컨트롤러가 TDMesh 리소스를 조정하지 못하는 것으로 보임

문제를 진단하려면 gke-td GatewayClass가 있는지 확인하세요.

kubectl get gatewayclasses

출력에는 gke-td라는 GatewayClass가 포함되어야 합니다.

NAME             CONTROLLER
gke-td           networking.gke.io/gateway

이 이름의 GatewayClass가 반환되지 않으면 필수 커스텀 리소스 정의 설치에 따라 모든 필수 CRD가 구성 클러스터에 설치되어 있는지 확인한 후 다음 명령어를 사용하여 Cloud Service Mesh Google Kubernetes Engine 서비스 메시의 허브 기능을 다시 사용 설정합니다.

  1. 기능을 사용 중지합니다.

    gcloud container hub ingress disable
    
  2. 기능을 다시 사용 설정합니다.

    gcloud container hub ingress enable \
      --config-membership=/projects/PROJECT_ID/locations/global/memberships/gke-1