OCNEクラスタ作成の問題
コンソールで(clusterAPIコンポーネントを使用して)作成されたOCNEクラスタに問題が発生した場合、問題の診断と解決に使用できるいくつかのテクニックを次に示します。
クラスタの分析
vz analyze
コマンドライン・ツールを使用して、クラスタまたはクラスタ・スナップショットを分析し、問題に関するレポートを受け取ります。vz analyze
の詳細は、「Verrazzanoクラスタの分析」を参照してください。
clusterAPIコンポーネントに関連する問題は、次のレポートに表示されます:
- Cluster API (CAPI)の問題
- Rancherの問題 (Rancherの問題の中には、clusterAPIに関連しないものがあります)
clusterAPIコンポーネントの条件の評価
clusterAPIコンポーネントに関する情報を収集するには、そのログ・ファイルを確認し、管理クラスタ上のclusterAPIカスタム・リソースのステータスを確認します。コンソールでは、管理クラスタはローカル・クラスタです。
clusterAPIログ・ファイルの確認
clusterAPIコンポーネントは、verrazzano-capi
ネームスペース内に4つのclusterAPIポッドを作成し、各ポッドは個別のログ・ファイルを生成します。ログ・ファイルを確認して、問題の原因を特定します。
clusterAPIコントローラのログ・ファイルを表示するには、次のコマンドを使用します:
$ kubectl logs -n verrazzano-capi -l cluster.x-k8s.io/provider=cluster-api
clusterAPI OCIプロバイダのログ・ファイルを表示するには、次のコマンドを使用します:
$ kubectl logs -n verrazzano-capi -l cluster.x-k8s.io/provider=infrastructure-oci
clusterAPIコントロール・プレーン・プロバイダのログ・ファイルを表示するには、次のコマンドを使用します:
$ kubectl logs -n verrazzano-capi -l cluster.x-k8s.io/provider=control-plane-ocne
clusterAPIブートストラップ・プロバイダのログ・ファイルを表示するには、次のコマンドを使用します:
$ kubectl logs -n verrazzano-capi -l cluster.x-k8s.io/provider=bootstrap-ocne
clusterAPI Kubernetesカスタム・リソースの確認
管理クラスタで、kubectl
を使用してclusterAPIカスタム・リソースのステータスを確認します。
clusterAPI Kubernetesカスタム・リソース・クラスタのステータスを確認するには、次のコマンドを使用します:
$ kubectl get clusters.cluster.x-k8s.io -A
クラスタ・ステータスはProvisioned
である必要があります。
clusterAPI Kubernetesカスタム・リソース・マシンのステータスを確認するには、次のコマンドを使用します:
$ kubectl get machines -A
各マシンのステータスはRunning
です。
OCIリソースのステータスの検証
クラスタを作成する際、Verrazzanoは関連付けられたOCIコンパートメントに次のリソースを作成します:
これらのリソースのいずれかが作成されなかった場合、または作成されたが、現在問題が発生している場合は、クラスタの残りの部分に影響する可能性があります。
必要なOCIリソースのステータスは、OCIコンソールで、またはclusterAPIコントローラのログ・ファイルを確認することでチェックできます。
原因としては次のことが考えられます:
-
OCIリソース制限に達しました: OCIテナンシで許可されている以上のリソースを作成する必要がある場合、クラスタの作成は失敗します。OCIサービス制限をチェックして、その制限を超えていないかを確認してください。サービス制限の引上げをリクエストする必要がある場合は、「サービス制限の引上げのリクエスト」を参照してください。
-
接続の問題: 仮想クラウド・ネットワークが正しく構成されていることを確認してください。推奨事項については、「OCNEでのVCNの構成」を参照してください。
-
ネットワーク・ロード・バランサがクリティカル状態です: ネットワーク・ロード・バランサは、Kubernetes APIサーバーが起動するまで、最初のクラスタ作成時に一時的にクリティカル状態になる可能性があります。クリティカル状態のままの場合、次のいずれかの問題が発生している可能性があります:
-
ネットワーク・ロード・バランサとOCNEコントロール・プレーン・ノード間のトラフィックは、ポート6443経由でブロックされます。
-
おそらくOCNE依存関係のインストールに失敗したため、OCNE APIサーバーが起動しませんでした。
-
-
ノードの作成に失敗しました:
-
OCI資格証明が無効です: クラスタ・オブジェクトが存在するネームスペースまたはOCIプロバイダ・ログ・ファイルのKubernetesイベントでエラーを確認します。
-
テンプレートのデプロイに使用されたイメージIDが無効です。
-
ワーカー・ノードのみ: ワーカー・ノードは、制御ノード・プレーンが
Running
状態になった後にプロビジョニングを開始しました。- OCNE依存関係がコントロール・プレーン・ノードへのインストールに失敗した場合、ワーカー・ノードは
Pending
状態のままで、作成されません。コントロール・プレーン・ノードのcloud-init
ログ・ファイルを確認して、原因を特定します。
- OCNE依存関係がコントロール・プレーン・ノードへのインストールに失敗した場合、ワーカー・ノードは
-
また、ポッドがワークロード・クラスタで実行されていることを確認する必要があります。コンソールから、ワークロード・クラスタのkubeconfigファイルをダウンロードし、次のコマンドを実行します:
$ kubectl --kubeconfig <workload-cluster-kubeconfig> get pods -A
いずれかのポッドのステータスがRunning
でない場合は、次のコマンドを実行してエラーを特定します:
$ kubectl describe pod <pod-name>