檢查混合式叢集是否已準備就緒
套用設定及安裝 Hybrid 執行階段前,請先確認 Kubernetes 叢集已準備好安裝 Apigee Hybrid。
如要檢查叢集是否已準備就緒,請建立含有 Kubernetes 工作定義的 YAML 檔案,並使用 kubectl
指令套用該檔案,藉此檢查叢集。然後使用 kubectl get jobs
指令檢查 Kubernetes 測試工作的狀態。
- 使用下列指令,確認
kubectl
已設為正確的環境。 目前的環境應設為要部署 Apigee Hybrid 的叢集。kubectl config current-context
結果應包含您要部署 Apigee Hybrid 的叢集名稱。舉例來說,在 GKE 上,內容名稱通常採用
gke_project-id_cluster-location_cluster-name
形式,如下所示:gke_my-project_us-central1_my-cluster
如果環境中的名稱叢集名稱不相符,下列指令會取得叢集的
gcloud
憑證,並設定kubectl
環境:地區性叢集
gcloud container clusters get-credentials $CLUSTER_NAME \ --region $CLUSTER_LOCATION \ --project $PROJECT_ID
區域叢集
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $CLUSTER_LOCATION \ --project $PROJECT_ID
- 在混合式檔案目錄中,建立
cluster-check
目錄:mkdir $HYBRID_FILES/cluster-check
- 在
$HYBRID_FILES/cluster-check
目錄中,建立名為apigee-k8s-cluster-ready-check.yaml
的檔案,並在當中加入下列內容:apiVersion: v1 kind: ServiceAccount metadata: name: apigee-k8s-cluster-ready-check --- apiVersion: batch/v1 kind: Job metadata: name: apigee-k8s-cluster-ready-check spec: template: spec: hostNetwork: true serviceAccountName: apigee-k8s-cluster-ready-check containers: - name: manager image: gcr.io/apigee-release/hybrid/apigee-operators:1.10.0 command: - /manager args: - --k8s-cluster-ready-check env: - name: POD_IP valueFrom: fieldRef: fieldPath: status.podIP securityContext: runAsGroup: 998 runAsNonRoot: true runAsUser: 999 restartPolicy: Never backoffLimit: 1
- 使用下列
kubectl
指令套用apigee-k8s-cluster-ready-check.yaml
。這會執行測試:kubectl apply -f $HYBRID_FILES/cluster-check/apigee-k8s-cluster-ready-check.yaml
- 使用下列指令檢查 Kubernetes 工作狀態:
kubectl get jobs apigee-k8s-cluster-ready-check
如果叢集已準備就緒,輸出內容應如下所示:
NAME COMPLETIONS DURATION AGE apigee-k8s-cluster-ready-check 1/1 8s 1h23m
如果測試失敗且叢集尚未準備就緒,輸出內容應如下所示:
NAME COMPLETIONS DURATION AGE apigee-k8s-cluster-ready-check 0/1 44s 44s
查看完成次數:
- 1/1 成功,您的叢集已準備好安裝 Apigee Hybrid。
- 0/1 測試失敗。叢集尚未準備就緒。請按照下列步驟排解叢集問題。
- 如果測試失敗,請使用下列指令檢查記錄:
- 取得叢集前置檢查工作的 Pod 名稱:
kubectl get pods | grep apigee-k8s-cluster-ready-check
- 取得 Pod 的 Kubernetes 記錄:
kubectl logs pod_name
其中 pod_name 是 apigee-k8s-cluster-ready-check Pod 的名稱。
- 取得叢集前置檢查工作的 Pod 名稱:
- 請先清除這些使用者,再繼續進行下一步。使用下列指令刪除 Kubernetes 工作:
kubectl delete -f $HYBRID_FILES/cluster-check/apigee-k8s-cluster-ready-check.yaml
您現在已確認 Apigee Hybrid 叢集已準備就緒。接著,請將設定套用至 Hybrid 執行階段,並完成 Apigee Hybrid 的安裝作業。
疑難排解
- Cassandra DNS 檢查:如果發現類似
DNS resolution was successful but IP doesn't match POD IP
、could not resolve hostname
或error determining hostname
的錯誤記錄,表示叢集 DNS 未針對多區域設定正確設定。如果您不打算設定多個區域,可以忽略這項錯誤。 - 控制平面連線檢查:如果發現類似
error creating TCP connection with host
的錯誤記錄,則需要解決叢集與 apigee.googleapis.com 的連線問題,然後重新執行作業。