ステップ 10: クラスタの準備状況を確認する

ハイブリッド クラスタの準備状況を確認する

構成を適用してハイブリッド Helm チャートをインストールする前に、Kubernetes クラスタで Apigee ハイブリッド インストールの準備ができていることを確認する必要があります。

クラスタの準備状況を確認するには、Kubernetes Job 定義を含む YAML ファイルを作成します。kubectl コマンドを使用してそのファイルを適用し、クラスタを確認します。その後、kubectl get jobs コマンドを使用して Kubernetes テスト Job のステータスを確認します。

  1. 次のコマンドを使用して、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
  2. helm-charts ディレクトリに cluster-check ディレクトリを作成します。
    mkdir $APIGEE_HELM_CHARTS_HOME/cluster-check
  3. $APIGEE_HELM_CHARTS_HOME/cluster-check ディレクトリに、次の内容を含む apigee-k8s-cluster-ready-check.yaml という名前のファイルを作成します。
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: apigee-k8s-cluster-ready-check
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: cluster-check-admin
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: cluster-admin
    subjects:
    - apiGroup: ""
      kind: ServiceAccount
      namespace: default
      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.12.2
              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
    
  4. 次の 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
  5. 次のコマンドを使用して、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 テストに失敗しました。クラスタの準備ができていません。クラスタのトラブルシューティングを行う手順は次のとおりです。

  6. テストが失敗した場合は、次のコマンドを使用してログを確認します。
    1. クラスタの事前チェックジョブの Pod 名を取得します。
      kubectl get pods | grep apigee-k8s-cluster-ready-check
    2. Pod の Kubernetes ログを取得します。
      kubectl logs pod_name

      ここで、pod_name は apigee-k8s-cluster-ready-check Pod の名前です。

  7. 次のステップに進む前にクリーンアップします。次のコマンドを使用して、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 ハイブリッド クラスタの準備が整いました。次に、チャートをインストールして、構成をハイブリッド ランタイムに適用します。

トラブルシューティング

  1. Cassandra DNS チェック: DNS resolution was successful but IP doesn't match POD IPcould not resolve hostnameerror determining hostname に類似したエラーログが見つかった場合、クラスタ DNS がマルチリージョン設定用に正しく構成されていないことを意味します。マルチリージョンを設定しない場合は、このエラーを無視できます。
  2. コントロール プレーンの接続チェック: error creating TCP connection with host のようなエラーログが見つかった場合は、クラスタから apigee.googleapis.com への接続を解決し、ジョブを再実行する必要があります。

次のステップ

1 2 3 4 5 6 7 8 9 10 (次)ステップ 11: Helm チャートを使用して Apigee ハイブリッドをインストールする 12