13.6. Cluster API を使用するクラスターのトラブルシューティング
Cluster API を使用したマシン管理は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
このセクションの情報を使用して、発生する可能性のある問題を理解し、回復してください。通常、Cluster API に関する問題のトラブルシューティング手順は、Machine API に関する問題の手順と似ています。
				Cluster CAPI Operator とそのオペランドは、openshift-cluster-api namespace でプロビジョニングされますが、Machine API は openshift-machine-api namespace を使用します。namespace を参照する oc コマンドを使用する場合は、必ず正しい namespace を参照してください。
			
13.6.1. CLI 使用時に目的のオブジェクトを参照する リンクのコピーリンクがクリップボードにコピーされました!
					Cluster API を使用するクラスターの場合、OpenShift CLI (oc) コマンドで、Machine API オブジェクトよりも Cluster API オブジェクトが優先されます。
				
					この動作は、Cluster API と Machine API の両方で表されるオブジェクトに対して動作する oc コマンドに影響します。この解説では、マシンを削除する oc delete machine コマンドを例として使用します。
				
- 原因
 ocコマンドを実行すると、ocは Kube API サーバーと通信して、どのオブジェクトに対して操作を行うかを決定します。Kube API サーバーは、ocコマンドが実行されると、アルファベット順で最初に検出されたインストール済みのカスタムリソース定義 (CRD) を使用します。Cluster API オブジェクトの CRD は
cluster.x-k8s.ioグループにあり、Machine API オブジェクトの CRD はmachine.openshift.ioグループにあります。アルファベット順で文字cは文字mの前に来るため、Kube API サーバーは Cluster API オブジェクトの CRD とマッチします。そのため、ocコマンドは Cluster API オブジェクトに対して動作します。- 結果
 このような動作により、Cluster API を使用するクラスターで次の予期しない結果が発生する可能性があります。
- 
										両方のタイプのオブジェクトを含む namespace の場合、
oc get machineなどのコマンドが Cluster API オブジェクトのみを返します。 - 
										Machine API オブジェクトのみを含む namespace の場合、
oc get machineなどのコマンドが結果を返しません。 
- 
										両方のタイプのオブジェクトを含む namespace の場合、
 - 回避策
 - 
								それぞれの完全修飾名を使用することで、意図したタイプのオブジェクトに対して 
ocコマンドを動作させることができます。 
前提条件
- 
							
cluster-admin権限を持つアカウントを使用してクラスターにアクセスできる。 - 
							OpenShift CLI (
oc) がインストールされている。 
手順
Machine API マシンを削除するには、
oc delete machineコマンドを実行するときに、完全修飾名machine.machine.openshift.ioを使用します。oc delete machine.machine.openshift.io <machine_name>
$ oc delete machine.machine.openshift.io <machine_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cluster API マシンを削除するには、
oc delete machineコマンドを実行するときに、完全修飾名machine.cluster.x-k8s.ioを使用します。oc delete machine.cluster.x-k8s.io <machine_name>
$ oc delete machine.cluster.x-k8s.io <machine_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow