13.2. Cluster API の使用開始
Cluster API を使用したマシン管理は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
テクノロジープレビューの Cluster API では、Cluster API に必要なプライマリーリソースを手動で作成する必要があります。
13.2.1. Cluster API のプライマリーリソースの作成
Cluster API のプライマリーリソースを作成するには、クラスター ID 値を取得する必要があります。この値は、クラスターリソースマニフェストの <cluster_name>
パラメーターに使用します。
13.2.1.1. クラスター ID 値の取得
クラスター ID 値は、OpenShift CLI (oc
) を使用して確認できます。
前提条件
- OpenShift Container Platform クラスターをデプロイした。
-
cluster-admin
権限を持つアカウントを使用してクラスターにアクセスできる。 -
OpenShift CLI (
oc
) がインストールされている。
手順
次のコマンドを実行して、クラスター ID 値を取得します。
$ oc get infrastructure cluster \ -o jsonpath='{.status.infrastructureName}'
YAML マニフェストファイルを作成し、OpenShift CLI (oc
) を使用して適用することで、Cluster API のプライマリーリソースを手動で作成できます。
13.2.1.2. Cluster API のクラスターリソースの作成
YAML マニフェストファイルを作成し、それを OpenShift CLI (oc
) で適用することで、クラスターリソースを作成できます。
前提条件
- OpenShift Container Platform クラスターをデプロイした。
- Cluster API の使用を有効にした。
-
cluster-admin
権限を持つアカウントを使用してクラスターにアクセスできる。 -
OpenShift CLI (
oc
) がインストールされている。 - クラスター ID 値を取得した。
手順
以下のような YAML ファイルを作成します。この手順では、ファイル名の例として
<cluster_resource_file>.yaml
を使用します。apiVersion: cluster.x-k8s.io/v1beta1 kind: Cluster metadata: name: <cluster_name> 1 namespace: openshift-cluster-api spec: infrastructureRef: apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: <infrastructure_kind> 2 name: <cluster_name> namespace: openshift-cluster-api
次のコマンドを実行して、クラスターを作成します。
$ oc create -f <cluster_resource_file>.yaml
検証
次のコマンドを実行して、クラスター CR が存在することを確認します。
$ oc get cluster
出力例
NAME PHASE AGE VERSION <cluster_name> Provisioning 4h6m
PHASE
の値がProvisioned
の場合、クラスターリソースの準備が完了しています。
関連情報
13.2.1.3. Cluster API のインフラストラクチャーリソースの作成
YAML マニフェストファイルを作成し、それを OpenShift CLI (oc
) で適用することで、プロバイダー固有のインフラストラクチャーリソースを作成できます。
前提条件
- OpenShift Container Platform クラスターをデプロイした。
- Cluster API の使用を有効にした。
-
cluster-admin
権限を持つアカウントを使用してクラスターにアクセスできる。 -
OpenShift CLI (
oc
) がインストールされている。 - クラスター ID 値を取得した。
- クラスターリソースを作成して適用した。
手順
以下のような YAML ファイルを作成します。この手順では、ファイル名の例として
<infrastructure_resource_file>.yaml
を使用します。apiVersion: infrastructure.cluster.x-k8s.io/<version> 1 kind: <infrastructure_kind> 2 metadata: name: <cluster_name> 3 namespace: openshift-cluster-api spec: 4
- 1
apiVersion
はプラットフォームによって異なります。詳細は、各プロバイダーの Cluster API インフラストラクチャーリソースのサンプル YAML を参照してください。次の値が有効です。-
Infrastructure.cluster.x-k8s.io/v1beta1
: Google Cloud Platform (GCP) クラスターが使用するバージョン。 -
Infrastructure.cluster.x-k8s.io/v1beta1
: Amazon Web Services (AWS) クラスターが使用するバージョン。
-
- 2
- クラスターのインフラストラクチャーの種類を指定します。この値は、プラットフォームの値と一致する必要があります。次の値が有効です。
-
AWSCluster
: クラスターが AWS 上で実行されている場合。 -
GCPCluster
: クラスターが GCP 上で実行されている場合。
-
- 3
- クラスターの名前を指定します。
- 4
- 環境の詳細を指定します。これらのパラメーターはプロバイダー固有です。詳細は、各プロバイダーの Cluster API インフラストラクチャーリソースのサンプル YAML を参照してください。
次のコマンドを実行して、インフラストラクチャー CR を作成します。
$ oc create -f <infrastructure_resource_file>.yaml
検証
次のコマンドを実行して、インフラストラクチャー CR が作成されたことを確認します。
$ oc get <infrastructure_kind>
<infrastructure_kind>
は、プラットフォームに対応する値です。出力例
NAME CLUSTER READY <cluster_name> <cluster_name> true
注記この出力には、クラウドプロバイダーに固有の追加の列が含まれている場合があります。
13.2.1.4. Cluster API のマシンテンプレートの作成
YAML マニフェストファイルを作成し、それを OpenShift CLI (oc
) で適用することで、プロバイダー固有のマシンテンプレートリソースを作成できます。
前提条件
- OpenShift Container Platform クラスターをデプロイした。
- Cluster API の使用を有効にした。
-
cluster-admin
権限を持つアカウントを使用してクラスターにアクセスできる。 -
OpenShift CLI (
oc
) がインストールされている。 - クラスターとインフラストラクチャーリソースを作成して適用した。
手順
以下のような YAML ファイルを作成します。この手順では、ファイル名の例として
<machine_template_resource_file>.yaml
を使用します。apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: <machine_template_kind> 1 metadata: name: <template_name> 2 namespace: openshift-cluster-api spec: template: spec: 3
- 1
- マシンテンプレートの種類を指定します。この値は、プラットフォームの値と一致する必要があります。次の値が有効です。
-
AWSMachineTemplate
: クラスターが Amazon Web Services (AWS) 上で実行されている場合。 -
GCPMachineTemplate
: クラスターが Google Cloud Platform (GCP) 上で実行されている場合。
-
- 2
- マシンテンプレートの名前を指定します。
- 3
- 環境の詳細を指定します。これらのパラメーターはプロバイダー固有です。詳細は、各プロバイダーの Cluster API マシンテンプレートのサンプル YAML を参照してください。
次のコマンドを実行して、マシンテンプレート CR を作成します。
$ oc create -f <machine_template_resource_file>.yaml
検証
次のコマンドを実行して、マシンテンプレート CR が作成されたことを確認します。
$ oc get <machine_template_kind>
<machine_template_kind>
は、プラットフォームに対応する値です。出力例
NAME AGE <template_name> 77m
13.2.1.5. Cluster API のコンピュートマシンセットの作成
Cluster API を使用して、選択した特定のワークロードのマシンコンピュートリソースを動的に管理するマシンセットを作成できます。
前提条件
- OpenShift Container Platform クラスターをデプロイした。
- Cluster API の使用を有効にした。
-
cluster-admin
権限を持つアカウントを使用してクラスターにアクセスできる。 -
OpenShift CLI (
oc
) がインストールされている。 - クラスターリソース、インフラストラクチャーリソース、およびマシンテンプレートリソースを作成した。
手順
以下のような YAML ファイルを作成します。この手順では、ファイル名の例として
<machine_set_resource_file>.yaml
を使用します。apiVersion: cluster.x-k8s.io/v1beta1 kind: MachineSet metadata: name: <machine_set_name> 1 namespace: openshift-cluster-api spec: clusterName: <cluster_name> 2 replicas: 1 selector: matchLabels: test: example template: metadata: labels: test: example spec: 3 # ...
次のコンピュートコマンドを実行して、マシンセット CR を作成します。
$ oc create -f <machine_set_resource_file>.yaml
次のコマンドを実行して、コンピュートマシンセット CR が作成されたことを確認します。
$ oc get machineset -n openshift-cluster-api 1
- 1
openshift-cluster-api
namespace を指定します。
出力例
NAME CLUSTER REPLICAS READY AVAILABLE AGE VERSION <machine_set_name> <cluster_name> 1 1 1 17m
新しいコンピュートマシンセットが利用可能な場合、
REPLICAS
とAVAILABLE
の値が一致します。コンピュートマシンセットが使用できない場合は、数分待ってからコマンドを再実行してください。
検証
コンピュートマシンセットが必要な設定に従ってマシンを作成していることを確認するには、次のコマンドを実行して、クラスター内のマシンとノードのリストを確認します。
Cluster API マシンのリストを表示します。
$ oc get machine -n openshift-cluster-api 1
- 1
openshift-cluster-api
namespace を指定します。
出力例
NAME CLUSTER NODENAME PROVIDERID PHASE AGE VERSION <machine_set_name>-<string_id> <cluster_name> <ip_address>.<region>.compute.internal <provider_id> Running 8m23s
ノードのリストを表示します。
$ oc get node
出力例
NAME STATUS ROLES AGE VERSION <ip_address_1>.<region>.compute.internal Ready worker 5h14m v1.28.5 <ip_address_2>.<region>.compute.internal Ready master 5h19m v1.28.5 <ip_address_3>.<region>.compute.internal Ready worker 7m v1.28.5