虛擬主機缺少環境群組

您正在查看 ApigeeApigee Hybrid 說明文件。
這個主題沒有對應的 Apigee Edge 說明文件。

問題

查看 apigee 命名空間中的資源時,系統會顯示含有 Reason AIS_VIRTUALHOST_MISSING_ENVGROUPApigeeIssue

錯誤訊息

執行 kubectl -n apigee get apigeeissues 後,系統會顯示以下錯誤:

NAME                     SEVERITY   REASON                             DOCUMENTATION                                                                                  AGE
vhost-missing-eg-my-eg   ERROR      AIS_VIRTUALHOST_MISSING_ENVGROUP   https://cloud.google.com/apigee/docs/api-platform/troubleshoot/playbooks/vh-missing-env-group   5h18m

原因:Virtualhost 缺少環境群組

overrides.yaml 中定義的 virtualhosts 缺少對應的 EnvironmentGroup

診斷

執行下列指令:

kubectl -n apigee describe apigeeissue ISSUE_NAME

其中 ISSUE_NAME 是問題名稱。例如:vhost-missing-eg-my-eg

系統會傳回類似以下的內容:

Name:         vhost-missing-eg-my-eg
Namespace:    apigee
Labels:       ais-reason=AIS_VIRTUALHOST_MISSING_ENVGROUP
Annotations:  <none>
API Version:  apigee.cloud.google.com/v1alpha1
Kind:         ApigeeIssue
Metadata:
  Creation Timestamp:  2023-04-05T14:29:38Z
  Generation:          1
  Managed Fields:
    API Version:  apigee.cloud.google.com/v1alpha1
    Fields Type:  FieldsV1
    fieldsV1:
      f:spec:
        .:
        f:details:
        f:documentation:
        f:reason:
        f:severity:
    Manager:         apigeewatcher
    Operation:       Update
    Time:            2023-04-05T14:29:38Z
  Resource Version:  28195
  UID:               f7b62eb3-3f84-4a37-9ba8-9a0e1e9c3454
Spec:
  Details:        Expected EnvironmentGroup "my-eg" in ApigeeOrganization "my-org" for ApigeeRouteConfig "my-org-my-eg"
  Documentation:  https://cloud.google.com/apigee/docs/api-platform/troubleshoot/playbooks/vh-missing-env-group
  Reason:         AIS_VIRTUALHOST_MISSING_ENVGROUP
  Severity:       ERROR
Events:           <none>
Spec:
  Details:        Expected EnvironmentGroup "my-eg" in ApigeeOrganization "my-org" for ApigeeRouteConfig "my-org-my-eg"

Spec.Details 的內容會說明預期存在的 EnvironmentGroup 名稱。

解決方法

  1. 使用 describe ApigeeIssue 指令,顯示預期存在的 EnvironmentGroup 名稱:
    kubectl -n apigee describe apigeeissues ISSUE_NAME

    其中 ISSUE_NAME 是問題名稱。例如:vhost-missing-eg-my-eg

    在這個範例中,環境群組 my-eg 應位於 my-org Apigee 機構中。

  2. 請使用下列其中一種方法修正問題:
    1. 建立環境群組:
      1. 建立環境群組
      2. 新增環境
      3. 建立 Proxy
      4. 在該環境中部署 Proxy
    2. 刪除環境群組:
      1. 在文字編輯器中開啟 overrides.yaml
      2. virtualhosts 中刪除已移除的環境群組。
      3. 儲存 overrides.yaml 檔案。
      4. 使用 Helm 指令重新套用 overrides.yaml 檔案:

        模擬測試:

        helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
          --namespace APIGEE_NAMESPACE \
          --atomic \
          --set envgroup=ENV_GROUP \
          -f overrides.yaml \
          --dry-run=server
        

        請務必加入所有顯示的設定,包括 --atomic 這樣一來,當動作失敗時,系統就會回復。

        您的安裝作業可能已設定為使用與 ENV_GROUP 不同的 ENV_GROUP_RELEASE_NAME。如需設定相關資訊,請參閱「使用 Helm 安裝 Apigee hybrid」。

        安裝圖表:

        helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
          --namespace APIGEE_NAMESPACE \
          --atomic \
          --set envgroup=ENV_GROUP \
          -f overrides.yaml
        

        重試並確認系統不再傳回錯誤訊息

必須收集診斷資訊

如果問題在您按照上述操作說明後仍未解決,請收集下列診斷資訊,然後與 Google Cloud Customer Care 團隊聯絡:

  1. Google Cloud 專案 ID。
  2. Apigee Hybrid 機構的名稱。
  3. ApigeeIssueSpec.Details 欄位。