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-apiExpand クラスターのクラウドプロバイダー 値 Amazon Web Services (AWS)
AWSClusterGoogle Cloud
GCPClusterRed Hat OpenStack Platform (RHOSP)
OpenStackCluster次のコマンドを実行して、クラスターを作成します。
$ oc create -f <cluster_resource_file>.yaml
検証
次のコマンドを実行して、クラスター CR が存在することを確認します。
$ oc get cluster出力例
NAME PHASE AGE VERSION <cluster_name> Provisioning 4h6mPHASEの値が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: Amazon Web Services (AWS)、Google Cloud、Red Hat OpenStack Platform (RHOSP) クラスターが使用するバージョン。
-
- 2
- クラスターのインフラストラクチャーの種類を指定します。この値は、プラットフォームの値と一致する必要があります。次の値が有効です。
Expand クラスターのクラウドプロバイダー 値 Amazon Web Services (AWS)
AWSClusterGoogle Cloud
GCPClusterRed Hat OpenStack Platform (RHOSP)
OpenStackCluster - 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
- マシンテンプレートの種類を指定します。この値は、プラットフォームの値と一致する必要があります。次の値が有効です。
Expand クラスターのクラウドプロバイダー 値 Amazon Web Services (AWS)
AWSMachineTemplateGoogle Cloud
GCPMachineTemplateRed Hat OpenStack Platform (RHOSP)
OpenStackMachineTemplate - 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-api1 - 1
openshift-cluster-apinamespace を指定します。
出力例
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-api1 - 1
openshift-cluster-apinamespace を指定します。
出力例
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