ハイブリッド クラスタの準備状況を確認する
構成を適用してハイブリッド Helm チャートをインストールする前に、Kubernetes クラスタで Apigee ハイブリッド インストールの準備ができていることを確認する必要があります。
クラスタの準備状況を確認するには、Kubernetes Job 定義を含む YAML ファイルを作成します。kubectl
コマンドを使用してそのファイルを適用し、クラスタを確認します。その後、kubectl get jobs
コマンドを使用して Kubernetes テスト Job のステータスを確認します。
- 次のコマンドを使用して、
kubectl
が正しいコンテキストに設定されていることを確認します。現在のコンテキストは、Apigee ハイブリッドをデプロイするクラスタに設定する必要があります。kubectl config current-context
結果に、Apigee ハイブリッドをデプロイするクラスタの名前が含まれている必要があります。たとえば、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
- helm-charts ディレクトリに
cluster-check
ディレクトリを作成します。mkdir $APIGEE_HELM_CHARTS_HOME/cluster-check
$APIGEE_HELM_CHARTS_HOME/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.13.1 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 $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml
出力には、サービス アカウントとジョブが作成されたことが示されます。次に例を示します。
kubectl apply -f $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml
serviceaccount/apigee-k8s-cluster-ready-check created job.batch/apigee-k8s-cluster-ready-check created - 次のコマンドを使用して、Kubernetes Job のステータスを確認します。
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 ハイブリッドをインストールする準備が整っています。
- 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 Job を削除します。
kubectl delete -f $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml
出力には、サービス アカウントとジョブが削除されたことが示されます。次に例を示します。
kubectl delete -f $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml
serviceaccount "apigee-k8s-cluster-ready-check" deleted job.batch "apigee-k8s-cluster-ready-check" deleted
これで、Apigee ハイブリッド クラスタの準備が整いました。次に、チャートをインストールして、構成をハイブリッド ランタイムに適用します。
トラブルシューティング
- 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 への接続を解決し、ジョブを再実行する必要があります。