檢查混合式叢集完備性
在套用設定並安裝混合式執行階段之前,請先確認 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 名稱:
- 請先清理,再繼續進行下一個步驟。使用下列指令刪除 Kubernetes 工作:
kubectl delete -f $HYBRID_FILES/cluster-check/apigee-k8s-cluster-ready-check.yaml
您現在已確認 Apigee 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 之間的連線問題,並重新執行工作。