マルチクラスタVerrazzano
このドキュメントでは、マルチクラスタVerrazzanoの使用時に発生する可能性がある一般的な問題とそのトラブルシューティング方法について説明します。
管理クラスタにマルチクラスタ・リソースを作成し、管理対象クラスタにplacement
値を指定した場合、それらのリソースはその管理対象クラスタに作成されます。管理対象クラスタに作成されない場合は、次のステップを使用してトラブルシューティングします:
- 管理対象クラスタが正しく登録され、管理クラスタに接続できることを確認します。
- リソースのネームスペースのVerrazzanoProjectも、その管理対象クラスタに
placement
があることを確認します。 - 管理クラスタのマルチクラスタ・リソースのステータス・フィールドを確認して、ターゲットとなる各管理対象クラスタでのそのリソースのステータスを確認します。
管理対象クラスタの登録および接続の検証
管理クラスタ上の対応するVerrazzanoManagedCluster (VMC)リソースを表示することで、管理対象クラスタが管理クラスタに正常に登録されたことを確認できます。たとえば、managed1
という名前の管理対象クラスタが正常に登録されたことを確認するには:
# on the admin cluster
$ kubectl get verrazzanomanagedcluster managed1 \
-n verrazzano-mc \
-o yaml
前述のコマンドの部分的なサンプル出力:
status:
conditions:
- lastTransitionTime: "2021-06-22T21:03:27Z"
message: Ready
status: "True"
type: Ready
lastAgentConnectTime: "2021-06-22T21:06:04Z"
... other fields ...
VMCリソースのステータスでlastAgentConnectTime
を確認します。これは、管理対象クラスタが管理クラスタに最後に接続した時間です。この値が存在しない場合、managed1
という名前の管理対象クラスタは管理クラスタに一度も正常に接続したことはありません。これにはいくつかの理由が考えられます:
-
管理対象クラスタに登録YAMLを適用する管理対象クラスタ登録プロセス・ステップが完了しませんでした。完全な設定手順は、こちらを参照してください。
-
管理対象クラスタには、管理クラスタへのネットワーク接続がありません。管理対象クラスタは、管理クラスタへの接続を定期的に試行し、エラーは管理対象クラスタの
verrazzano-application-operator
ポッドのログに報告されます。次のコマンドを使用して、ログを表示します。
# on the managed cluster
$ kubectl logs \
-n verrazzano-system \
-l app=verrazzano-application-operator
これらのログで接続に問題があることが判明した場合は、登録中に指定した管理クラスタのKubernetesサーバー・アドレスをチェックして正しいことを確認し、管理対象クラスタから到達可能であることを確認してください。正しくない場合は、ここの設定手順で説明されている管理対象クラスタ登録プロセスを繰り返す必要があります。
VerrazzanoProjectの配置の検証
Verrazzanoが管理対象クラスタにアプリケーション・ネームスペースを作成するには、そのネームスペースを次のようなVerrazzanoProjectの一部にする必要があります:
- そのネームスペースを含みます。
- その管理対象クラスタを含む
placement
値があります。
アプリケーションのネームスペースに対応するプロジェクトの詳細を表示します。次のコマンド例では、プロジェクト名をmyproject
と仮定します。すべてのプロジェクトは、verrazzano-mc
ネームスペースで作成されるものとします。
# on the admin cluster
$ kubectl get verrazzanoproject myproject \
-n verrazzano-mc \
-o yaml
次の部分的なサンプル出力は、ネームスペースmynamespace
が管理対象クラスタmanaged1
に作成されるプロジェクトのものです。
spec:
placement:
clusters:
- name: managed1
template:
namespaces:
- metadata:
name: mynamespace
....other fields....
マルチクラスタ・リソース・ステータスの確認
管理クラスタでは、各マルチクラスタ・リソースのステータス・フィールドが、配置されている各管理対象クラスタの基礎となるリソースのステータスで更新されます。
次のコマンド例では、ネームスペースmynamespace
にある、管理対象クラスタmanaged1
を含むplacement
値を持つmyapp
という名前のMultiClusterApplicationConfigurationのステータスを表示する方法を示します
$ kubectl get multiclusterapplicationconfiguration myapp \
-n mynamespace \
-o yaml
placementに指定された各クラスタ内の基礎となるリソースのステータスが、次の部分的なサンプル出力に表示されています:
status:
clusters:
- lastUpdateTime: "2021-06-22T21:05:04Z"
message: OAM Application Configuration created
name: managed1
state: Succeeded
conditions:
- lastTransitionTime: "2021-06-22T21:03:58Z"
message: OAM Application Configuration created
status: "True"
type: DeployComplete
state: Succeeded
ステータス・メッセージには、操作の成功または失敗に関する追加情報が含まれます。