1.7. ホステッドコントロールプレーン (テクノロジープレビュー)
マルチクラスターエンジン Operator クラスター管理では、スタンドアロンまたはホステッドコントロールプレーンの 2 つの異なるコントロールプレーン設定を使用して、OpenShift Container Platform クラスターをデプロイできます。スタンドアロン設定では、専用の仮想マシンまたは物理マシンを使用して、OpenShift Container Platform のコントロールプレーンをホストします。OpenShift Container Platform の Hosted Control Plane を使用すると、コントロールプレーンごとに専用の物理マシンを必要とせずに、ホスティングクラスター上にコントロールプレーンを Pod として作成できます。
OpenShift Container Platform ホステッドコントロールプレーンは、Amazon Web Services (AWS)、ベアメタル環境、および Red Hat OpenShift Virtualization のテクノロジープレビュー機能として利用できます。コントロールプレーンは、OpenShift Container Platform バージョン 4.13 以降でホスティングできます。
注記: Hosted Control Plane の同じプラットフォームで、ハブクラスターとワーカーを実行します。
コントロールプレーンは、単一の namespace に含まれる Pod として実行され、Hosted Control Plane クラスターに関連付けられます。OpenShift Container Platform がこのタイプのホステッドクラスターを作成すると、コントロールプレーンから独立したワーカーノードが作成されます。
Hosted Control Plane クラスターには、いくつかの利点があります。
- 専用コントロールプレーンノードをホストする必要がなくなるため、コストを節約できます。
- コントロールプレーンとワークロードを分離することで、分離が改善され、変更が必要になる設定エラーが減少します。
- コントロールプレーンノードのブートストラップの要件をなくすことで、クラスターの作成時間を短縮します。
- ターンキーデプロイメントまたは完全にカスタマイズされた OpenShift Container Platform プロビジョニングをサポートします。
OpenShift Container Platform バージョン 4.12.9 以降でテストされた、次の高可用性ホステッドコントロールプレーン要件を参照してください。
- 78 pods
- Etcd の場合は 3 つの 4 Gi PV、OVN の場合は 3 つの 1 Gi PV
- 最小 CPU: 約 5.5 コア
- 最小メモリー: 約 19 GB
ホステッドコントロールプレーンの詳細については、以下のトピックを参照してください。
1.7.1. AWS でのホスティングクラスターの設定 (テクノロジープレビュー) リンクのコピーリンクがクリップボードにコピーされました!
Hosted control plane を設定するには、ホスティングクラスターとホステッドクラスターが必要です。hypershift-addon
マネージドクラスターアドオンを使用して既存のマネージドクラスターに HyperShift Operator をデプロイすることにより、そのクラスターをホスティングクラスターとして有効にして、ホステッドクラスターを作成し始めることができます。
マルチクラスターエンジン Operator 2.4 は、デフォルトの local-cluster
とハブクラスターのみをホスティングクラスターとしてサポートします。
ホステッドコントロールプレーンはテクノロジープレビュー機能であるため、関連コンポーネントはデフォルトで無効になっています。
既存のクラスターをホスティングクラスターとして機能するように設定することで、Hosted control plane をデプロイできます。ホスティングクラスターは、コントロールプレーンがホストされている Red Hat OpenShift Container Platform クラスターです。Red Hat Advanced Cluster Management 2.9 は、local-cluster
とも呼ばれるハブクラスターをホスティングクラスターとして使用できます。local-cluster
をホスティングクラスターとして設定する方法については、次のトピックを参照してください。
ベストプラクティス: ホステッドコントロールプレーンでは、必ず同じプラットフォームでハブクラスターとワーカーを実行してください。
1.7.1.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
ホスティングクラスターを設定するには、次の前提条件を満たす必要があります。
- OpenShift Container Platform クラスターにインストールされた Kubernetes Operator 2.5 以降のマルチクラスターエンジン。マルチクラスターエンジン Operator は、Red Hat Advanced Cluster Management をインストールすると自動的にインストールされます。マルチクラスターエンジン Operator は、Red Hat Advanced Cluster Management を使用せずに OpenShift Container Platform OperatorHub から Operator としてインストールすることもできます。
マルチクラスターエンジン Operator には、少なくとも 1 つのマネージド OpenShift Container Platform クラスターが必要です。multicluster engine Operator バージョン 2.5 以降では、
local-cluster
が自動的にインポートされます。local-cluster
の詳細については、詳細設定 を参照してください。次のコマンドを実行して、ハブクラスターの状態を確認できます。oc get managedclusters local-cluster
oc get managedclusters local-cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - HyperShift Operator を実行するための少なくとも 3 つのワーカーノードを含むホスティングクラスター。
- AWS コマンドラインインターフェイス。
1.7.1.2. Amazon Web Services S3 バケットと S3 OIDC シークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
AWS でホステッドクラスターを作成および管理する予定の場合は、次の手順を実行します。
クラスターの OIDC 検出ドキュメントをホストするためのパブリックアクセスを持つ S3 バケットを作成します。
us-east-1 リージョンにバケットを作成するには、次のコードを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow us-east-1 リージョン以外のリージョンにバケットを作成するには、次のコードを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
HyperShift Operator 用に
hypershift-operator-oidc-provider-s3-credentials
という名前の OIDC S3 シークレットを作成します。 -
シークレットを
local-cluster
namespace に保存します。 次の表を参照して、シークレットに次のフィールドが含まれていることを確認します。
Expand フィールド名 説明 bucket
HyperShift クラスターの OIDC 検出ドキュメントをホストするためのパブリックアクセスを備えた S3 バケットが含まれます。
credentials
バケットにアクセスできる
default
プロファイルの認証情報を含むファイルへの参照。デフォルトでは、HyperShift はdefault
プロファイルのみを使用してバケット
を操作します。region
S3 バケットのリージョンを指定します。
次の例は、サンプルの AWS シークレットテンプレートを示しています。
oc create secret generic hypershift-operator-oidc-provider-s3-credentials --from-file=credentials=$HOME/.aws/credentials --from-literal=bucket=<s3-bucket-for-hypershift> --from-literal=region=<region> -n local-cluster
oc create secret generic hypershift-operator-oidc-provider-s3-credentials --from-file=credentials=$HOME/.aws/credentials --from-literal=bucket=<s3-bucket-for-hypershift> --from-literal=region=<region> -n local-cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記: シークレットのリカバリーバックアップは自動的に有効になりません。以下のコマンドを実行して、障害復旧用に
hypershift-operator-oidc-provider-s3-credentials
シークレットのバックアップを有効にするラベルを追加します。oc label secret hypershift-operator-oidc-provider-s3-credentials -n local-cluster cluster.open-cluster-management.io/backup=true
oc label secret hypershift-operator-oidc-provider-s3-credentials -n local-cluster cluster.open-cluster-management.io/backup=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.1.3. ルーティング可能なパブリックゾーンの作成 リンクのコピーリンクがクリップボードにコピーされました!
ゲストクラスター内のアプリケーションにアクセスするには、パブリックゾーンがルーティング可能である必要があります。パブリックゾーンが存在する場合は、この手順を省略します。省力しない場合は、パブリックゾーンが既存の機能に影響を及ぼします。
次のコマンドを実行して、クラスター DNS レコードのパブリックゾーンを作成します。
BASE_DOMAIN=www.example.com aws route53 create-hosted-zone --name $BASE_DOMAIN --caller-reference $(whoami)-$(date --rfc-3339=date)
BASE_DOMAIN=www.example.com
aws route53 create-hosted-zone --name $BASE_DOMAIN --caller-reference $(whoami)-$(date --rfc-3339=date)
1.7.1.4. 外部 DNS の有効化 リンクのコピーリンクがクリップボードにコピーされました!
Hosted control plane ではコントロールプレーンとデータプレーンが分離されているため、次の 2 つの独立した領域で DNS を設定できます。
-
次のドメインなど、ホステッドクラスター内のワークロードの Ingress:
*.apps.service-consumer-domain.com
-
サービスプロバイダードメインを介した API または OAUTH エンドポイントなど、管理クラスター内のサービスエンドポイントの受信:
*.service-provider-domain.com
hostedCluster.spec.dns
の入力は、ホステッドクラスター内のワークロードの Ingress を決定します。hostedCluster.spec.services.servicePublishingStrategy.route.hostname
の入力は、管理クラスター内のサービスエンドポイントの Ingress を決定します。
外部 DNS は、LoadBalancer
または Route
の公開タイプを指定し、その公開タイプのホスト名を提供するホステッドクラスター Services
の名前レコードを作成します。Private
または PublicAndPrivate
エンドポイントアクセスタイプを持つホステッドクラスターの場合、APIServer
サービスと OAuth
サービスのみがホスト名をサポートします。Private
ホストクラスターの場合、DNS レコードは VPC 内の Virtual Private Cloud (VPC) エンドポイントのプライベート IP に解決されます。
Hosted control plane は、次の 4 つのサービスを公開します。
-
APIServer
-
OAuthServer
-
Konnectivity
-
Ignition
これらの各サービスは、HostedCluster
仕様の servicePublishingStrategy
を使用して公開されます。デフォルトでは、servicePublishingStrategy
の LoadBalancer
および Route
タイプの場合、次の 2 つの方法のいずれかでサービスを公開します。
-
LoadBalancer
タイプのService
ステータスにあるロードバランサーのホスト名を使用する -
Route
のstatus.host
フィールド
ただし、Hosted control plane をマネージドサービスコンテキストにデプロイメントする場合、これらの方法では、基盤となる管理クラスターの Ingress サブドメインが公開され、管理クラスターのライフサイクルとディザスターリカバリーのオプションが制限される可能性があります。
DNS 間接化が LoadBalancer
および Route
公開タイプに階層化されている場合、マネージドサービスオペレーターは、サービスレベルドメインを使用してすべてのパブリックホステッドクラスターサービスを公開できます。このアーキテクチャーでは、DNS 名を新しい LoadBalancer
または Route
に再マッピングできますが、管理クラスターの Ingress ドメインは公開されません。Hosted control plane は、外部 DNS を使用して間接層を実現します。
管理クラスターの hypershift
namespace に hypershift
Operator と一緒に external-dns
をデプロイできます。外部 DNS は、external-dns.alpha.kubernetes.io
/hostname アノテーションを持つ Services
または Routes
を監視します。このアノテーションは、レコードなどの Service
、または CNAME レコードなどの Route
を指す DNS レコードを作成するために使用されます。
1.7.1.4.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
Hosted control plane の外部 DNS を設定する前に、次の前提条件を満たす必要があります。
- 指定できる外部パブリックドメイン
- AWS Route53 管理コンソールへのアクセス
1.7.1.4.2. Hosted control plane の外部 DNS の設定 リンクのコピーリンクがクリップボードにコピーされました!
Hosted control plane クラスターをサービスレベル DNS (外部 DNS) でプロビジョニングする予定の場合は、次の手順を実行します。
-
HyperShift Operator の AWS 認証情報シークレットを作成し、
local-cluster
namespace でhypershift-operator-external-dns-credentials
という名前を付けます。 次の表を参照して、シークレットに必須フィールドが含まれていることを確認してください。
Expand フィールド名 説明 任意または必須 provider
サービスレベル DNS ゾーンを管理する DNS プロバイダー。
必須
domain-filter
サービスレベルドメイン。
必須
credentials
すべての外部 DNS タイプをサポートする認証情報ファイル。
AWS キーを使用する場合はオプション
aws-access-key-id
認証情報アクセスキー ID。
AWS DNS サービスを使用する場合はオプション
aws-secret-access-key
認証情報アクセスキーのシークレット。
AWS DNS サービスを使用する場合はオプション
次の例は、サンプルの
hypershift-operator-external-dns-credentials
シークレットテンプレートを示しています。oc create secret generic hypershift-operator-external-dns-credentials --from-literal=provider=aws --from-literal=domain-filter=service.my.domain.com --from-file=credentials=<credentials-file> -n local-cluster
oc create secret generic hypershift-operator-external-dns-credentials --from-literal=provider=aws --from-literal=domain-filter=service.my.domain.com --from-file=credentials=<credentials-file> -n local-cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記: シークレットのリカバリーバックアップは自動的に有効になりません。
hypershift-operator-external-dns-credentials
シークレットを災害復旧用にバックアップできるようにするラベルを追加するには、次のコマンドを入力します。oc label secret hypershift-operator-external-dns-credentials -n local-cluster cluster.open-cluster-management.io/backup=""
oc label secret hypershift-operator-external-dns-credentials -n local-cluster cluster.open-cluster-management.io/backup=""
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.1.4.3. パブリック DNS ホストゾーンの作成 リンクのコピーリンクがクリップボードにコピーされました!
AWS Route 53 管理コンソールで外部 DNS ドメインフィルターとして使用するパブリック DNS ホストゾーンを作成できます。
- Route 53 管理コンソールで、Create hosted zone をクリックします。
- Hosted zone configuration ページでドメイン名を入力し、タイプとして Publish hosted zone が選択されていることを確認し、Create hosted zone をクリックします。
- ゾーンが作成されたら、Records タブの Value/Route traffic to 列の値をメモします。
- メインドメインで、DNS 要求を委任ゾーンにリダイレクトするための NS レコードを作成します。Value フィールドに、前の手順でメモした値を入力します。
- Create records をクリックします。
新しいサブゾーンにテストエントリーを作成し、次の例のような
dig
コマンドでテストすることにより、DNS ホストゾーンが機能していることを確認します。dig +short test.user-dest-public.aws.kerberos.com 192.168.1.1
dig +short test.user-dest-public.aws.kerberos.com 192.168.1.1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow LoadBalancer
サービスとRoute
サービスのホスト名を設定するホストクラスターを作成するには、次のコマンドを入力します。ここで、external-dns-domain
は作成したパブリックホストゾーンと一致します。hypershift create cluster aws --name=example --endpoint-access=PublicAndPrivate --external-dns-domain=service-provider-domain.com ...
hypershift create cluster aws --name=example --endpoint-access=PublicAndPrivate --external-dns-domain=service-provider-domain.com ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
この例は、ホステッドクラスターの結果として生じる services
ブロックを示しています。
コントロールプレーンオペレーターは、Services
と Routes
を作成するときに、external-dns.alpha.kubernetes.io/hostname
アノテーションを付けます。値は、そのタイプの servicePublishingStrategy
の hostname
フィールドです。コントロールプレーンオペレーターは、その名前をサービスエンドポイントに使用し、ホスト名が設定されている場合、external-dns などの DNS レコードを作成できるメカニズムが存在することを期待します。
サービスレベルの DNS 間接化を使用できるのはパブリックサービスのみです。プライベートサービスは hypershift.local
プライベートゾーンを使用します。特定のエンドポイントアクセスタイプに対してプライベートなサービスに hostname
を設定することは無効です。
次の表は、サービスとエンドポイントの組み合わせに対して hostname
を設定することが有効な場合を示しています。
サービス | Public | PublicAndPrivate | Private |
---|---|---|---|
| Y | Y | N |
| Y | Y | N |
| Y | N | N |
| Y | N | N |
1.7.1.4.4. コマンドラインインターフェイスと外部 DNS を使用したクラスターのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
外部パブリックホストゾーンがすでに存在する場合は、hypershift
operator と external-dns
operator をデプロイする必要があります。次のコマンドを入力して、external-dns
Operator が実行中であり、内部フラグがパブリックホストゾーンを指していることを確認します。
1.7.1.5. AWS PrivateLink の有効化 リンクのコピーリンクがクリップボードにコピーされました!
PrivateLink を使用して AWS プラットフォームで Hosted Control Plane クラスターをプロビジョニングする予定の場合は、次の手順を実行します。
-
HyperShift Operator の AWS 認証情報シークレットを作成し、
hypershift-operator-private-link-credentials
という名前を付けます。シークレットは、ホスティングクラスターとして使用されるマネージドクラスターの namespace であるマネージドクラスター namespace に存在する必要があります。local-cluster
を使用した場合は、local-cluster
namespace にシークレットを作成します シークレットに必要なフィールドが含まれることを確認するには、以下の表を参照してください。
Expand フィールド名
説明
任意または必須
region
Private Link で使用するリージョン
必須
aws-access-key-id
認証情報アクセスキー ID。
必須
aws-secret-access-key
認証情報アクセスキーのシークレット。
必須
次の例は、サンプルの
hypershift-operator-private-link-credentials
シークレットテンプレートを示しています。oc create secret generic hypershift-operator-private-link-credentials --from-literal=aws-access-key-id=<aws-access-key-id> --from-literal=aws-secret-access-key=<aws-secret-access-key> --from-literal=region=<region> -n local-cluster
oc create secret generic hypershift-operator-private-link-credentials --from-literal=aws-access-key-id=<aws-access-key-id> --from-literal=aws-secret-access-key=<aws-secret-access-key> --from-literal=region=<region> -n local-cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記: シークレットのリカバリーバックアップは自動的に有効になりません。以下のコマンドを実行して、障害復旧用に
hypershift-operator-private-link-credentials
シークレットのバックアップを有効にするラベルを追加します。oc label secret hypershift-operator-private-link-credentials -n local-cluster cluster.open-cluster-management.io/backup=""
oc label secret hypershift-operator-private-link-credentials -n local-cluster cluster.open-cluster-management.io/backup=""
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.1.6. ホステッドコントロールプレーン機能の有効化 リンクのコピーリンクがクリップボードにコピーされました!
ホステッドコントロールプレーン機能はデフォルトで無効になっています。この機能を自動的に有効にすると、hypershift-addon
マネージドクラスターアドオンも有効になります。
次のコマンドを実行して、以下の機能を有効にすることができます。
oc patch mce multiclusterengine --type=merge -p '{"spec":{"overrides":{"components":[{"name":"hypershift-preview","enabled": true}]}}}'
oc patch mce multiclusterengine --type=merge -p '{"spec":{"overrides":{"components":[{"name":"hypershift-preview","enabled": true}]}}}'
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- デフォルトの
MultiClusterEngine
リソースインスタンス名はmulticlusterengine
ですが、$ oc get mce
コマンドを実行し、クラスターからMultiClusterEngine
名を取得できます。
oc patch mce multiclusterengine --type=merge -p '{"spec":{"overrides":{"components":[{"name":"hypershift-local-hosting","enabled": true}]}}}'
oc patch mce multiclusterengine --type=merge -p '{"spec":{"overrides":{"components":[{"name":"hypershift-local-hosting","enabled": true}]}}}'
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- デフォルトの
MultiClusterEngine
リソースインスタンス名はmulticlusterengine
ですが、$ oc get mce
コマンドを実行し、クラスターからMultiClusterEngine
名を取得できます。
次のコマンドを実行して、
hypershift-preview
およびhypershift-local-hosting
機能がMultiClusterEngine
カスタムリソースで有効になっていることを確認します。oc get mce multiclusterengine -o yaml
oc get mce multiclusterengine -o yaml
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- デフォルトの
MultiClusterEngine
リソースインスタンス名はmulticlusterengine
ですが、$ oc get mce
コマンドを実行し、クラスターからMultiClusterEngine
名を取得できます。
出力は以下の例のようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.1.6.1. local-cluster の hypershift-addon マネージドクラスターアドオンを手動で有効にする リンクのコピーリンクがクリップボードにコピーされました!
Hosted Control Plane 機能を有効にすると、hypershift-addon
マネージドクラスターアドオンが自動的に有効になります。hypershift-addon
マネージドクラスターアドオンを手動で有効にする必要がある場合は、次の手順を実行して hypershift-addon
を使用し、HyperShift Operator を local-cluster
にインストールします。
以下の例のようなファイルを作成して、
ManagedClusterAddon
HyperShift アドオンを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行してこのファイルを適用します。
oc apply -f <filename>
oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow filename
は、作成したファイル名に置き換えます。以下のコマンドを実行して、
hypershift-addon
がインストールされていることを確認します。oc get managedclusteraddons -n local-cluster hypershift-addon
oc get managedclusteraddons -n local-cluster hypershift-addon
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アドオンがインストールされている場合、出力は以下の例のようになります。
NAME AVAILABLE DEGRADED PROGRESSING hypershift-addon True
NAME AVAILABLE DEGRADED PROGRESSING hypershift-addon True
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
HyperShift アドオンがインストールされ、ホスティングクラスターを使用してホステッドクラスターを作成および管理できるようになります。
1.7.1.7. ホステッドコントロールプレーンのコマンドラインインターフェイスのインストール リンクのコピーリンクがクリップボードにコピーされました!
ホステッドコントロールプレーン (hypershift
) コマンドラインインターフェイスは、OpenShift Container Platform のホステッドコントロールプレーンクラスターの作成と管理に使用されます。ホステッドコントロールプレーン機能を有効にした後、次の手順を実行して、ホステッドコントロールプレーンのコマンドラインインターフェイスをインストールできます。
- OpenShift Container Platform コンソールから、Help icon > Command Line Tools をクリックします。
お使いのプラットフォームの Download hypershift CLI をクリックします。
注記: ダウンロードは
hypershift-preview
機能を有効にしている場合にのみ表示されます。次のコマンドを実行して、ダウンロードしたアーカイブを解凍します。
tar xvzf hypershift.tar.gz
tar xvzf hypershift.tar.gz
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、バイナリーファイルを実行可能にします。
chmod +x hypershift
chmod +x hypershift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、バイナリーファイルをパス内のディレクトリーに移動します。
sudo mv hypershift /usr/local/bin/.
sudo mv hypershift /usr/local/bin/.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
hypershift create cluster
コマンドを使用して、ホステッドクラスターを作成および管理できるようになりました。次のコマンドを使用して、使用可能なパラメーターを一覧表示します。
hypershift create cluster aws --help
hypershift create cluster aws --help
1.7.1.8. ホステッドクラスターのディザスタリカバリー リンクのコピーリンクがクリップボードにコピーされました!
Hosted Control Plane は、マルチクラスターエンジン Operator ハブクラスター上で実行されます。データプレーンは、選択した別のプラットフォーム上で実行されます。マルチクラスターエンジンの operator ハブクラスターを災害から復旧する場合、ホストされているコントロールプレーンも復旧する必要がある場合があります。
ホステッドコントロールプレーンクラスターをバックアップし、別のクラスターに復元する方法は、AWS リージョン内のホステッドクラスターのディザスターリカバリー を参照してください。
重要: ホステッドクラスターの障害復旧は AWS でのみ利用できます。
1.7.1.9. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
AWS でホストされるコントロールプレーンの詳細については、次のリソースを参照してください。
- SR-IOV Operator をデプロイできるようになりました。詳細は、ホステッドコントロールプレーン用の SR-IOV Operator のデプロイメント を参照してください。
1.7.2. AWS での Hosted control plane クラスターの管理 (テクノロジープレビュー) リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes Operator コンソール用のマルチクラスターエンジンを使用して、Red Hat OpenShift Container Platform がホストするクラスターを作成できます。ホステッドコントロールプレーンは、Amazon Web Services (AWS) でテクノロジープレビューとして利用できます。AWS でホストされたコントロールプレーンを使用する場合は、コンソールを使用してホストされたクラスターを作成したり、コンソールまたはコマンドラインインターフェイスを使用してホストされたクラスターをインポートしたりできます。
1.7.2.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
ホステッドコントロールプレーンクラスターを作成する前に、ホステッドコントロールプレーンを設定する必要があります。詳細については、ホステッドコントロールプレーンの設定 (テクノロジープレビュー) を参照してください。
1.7.2.2. コンソールを使用した AWS でのホステッドコントロールプレーンクラスターの作成 リンクのコピーリンクがクリップボードにコピーされました!
マルチクラスターエンジン Operator コンソールからホステッドコントロールプレーンクラスターを作成するには、Infrastructure > Clusters に移動します。クラスター ページで、Create cluster > Amazon Web Services > Hosted をクリックし、コンソールで手順を完了します。
重要: クラスターを作成すると、マルチクラスターエンジン Operator コントローラーは、クラスターとそのリソースのための名前空間を作成します。その namespace には、そのクラスターインスタンスのリソースのみを含めるようにしてください。クラスターを破棄すると、namespace とその中のすべてのリソースが削除されます。
クラスターを既存のクラスターセットに追加する場合は、そのクラスターセットで追加できる適切なパーミッションが必要です。クラスターの作成時に cluster-admin
権限がない場合に、clusterset-admin
権限があるクラスターセットを選択する必要があります。指定されたクラスターセットに対して適切なパーミッションがないと、クラスターの作成に失敗します。選択するクラスターセットオプションがない場合には、クラスター管理者に連絡して、clusterset-admin
権限を受け取ってください。
マネージドクラスターはすべて、マネージドクラスターセットに関連付けられている必要があります。マネージドクラスターを ManagedClusterSet
に割り当てない場合は、デフォルト
のマネージドクラスターセットに自動的に追加されます。
このリリースイメージで、クラスターの作成に使用される OpenShift Container Platform イメージのバージョンを特定します。ホステッドコントロールプレーンクラスターは、提供されたリリースイメージのいずれかを使用する必要があります。
インフラストラクチャー環境で提供されるプロキシー情報は、プロキシーフィールドに自動的に追加されます。既存の情報を使用することも、それを上書きすることも、プロキシーを有効にする場合に情報を追加することもできます。次のリストには、プロキシーの作成に必要な情報が含まれています。
-
HTTP プロキシー URL:
HTTP
トラフィックのプロキシーとして使用する URL。 -
HTTPS プロキシー URL:
HTTPS
トラフィックに使用するセキュアなプロキシー URL。値の指定がない場合は、HTTP Proxy URL
と同じ値がHTTP
およびHTTPS
の両方に使用されます。 -
プロキシードメインなし: プロキシーをバイパスする必要のあるドメインのコンマ区切りリスト。ドメイン名をピリオド (
.
) で開始し、そのドメインにあるすべてのサブドメインを組み込みます。アステリスク (*
) を追加し、すべての宛先のプロキシーをバイパスします。 - 追加のトランスとバンドル: ミラーレジストリーへのアクセスに必要な証明書ファイルのコンテンツ。
注記: クラスターのインポートには、クラスターの詳細で提示された oc
コマンドを実行する必要があります。クラスターを作成すると、Red Hat Advanced Cluster Management で管理されるように自動的に設定されません。
1.7.2.3. AWS 上の複数のゾーンにホストされたクラスターを作成する リンクのコピーリンクがクリップボードにコピーされました!
次のコマンドを入力して、パブリックゾーンの BASE_DOMAIN
を指定してクラスターを作成します。
- 1
--zones
フラグは、--region
フラグで指定されたリージョン内のアベイラビリティーゾーンを指定する必要があります。--zones
フラグは、インフラストラクチャーを個別に作成するために使用されるhypershift create infra aws
コマンドでも使用できます。
次のゾーンごとのインフラストラクチャーが、指定されたすべてのゾーンに対して作成されます。
- パブリックサブネット
- プライベートサブネット
- NAT ゲートウェイ
- プライベートルートテーブル (パブリックルートテーブルはパブリックサブネット間で共有されます)
ゾーンごとに 1 つの NodePool
リソースが作成されます。ノードプール名の末尾にはゾーン名が付けられます。ゾーンのプライベートサブネットは spec.platform.aws.subnet.id
に設定されます。
1.7.2.4. ホステッドクラスターの AWS へのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
ホステッドコントロールプレーン (hypershift
) コマンドラインインターフェイスを設定し、local-cluster
ホスティングクラスターとして有効にしたら、次の手順を実行して、AWS にホステッドクラスターをデプロイできます。プライベートホストクラスターをデプロイするには、AWS でのプライベートホストクラスターのデプロイ を参照してください。
環境変数を次のように設定し、必要に応じて変数を認証情報に置き換えます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CLUSTER_NAME
とINFRA_ID
の値が同じであることを確認してください。そうしないと、クラスターが Kubernetes Operator コンソールのマルチクラスターエンジンに正しく表示されない可能性があります。各変数の説明を表示するには、次のコマンドを実行します。hypershift create cluster aws --help
hypershift create cluster aws --help
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ハブクラスターにログインしていることを確認します。
次のコマンドを実行して、ホステッドクラスターを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記: デフォルトでは、
HostedCluster
とNodePool
のすべてのカスタムリソースがclusters
namespace に作成されます。--namespace <namespace>
パラメーターを指定すると、選択した namespace にHostedCluster
およびNodePool
カスタムリソースが作成されます。以下のコマンドを実行して、ホステッドクラスターのステータスを確認することもできます。
oc get hostedclusters -n <hypershift-hosting-service-cluster>
oc get hostedclusters -n <hypershift-hosting-service-cluster>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行してノードプールを確認できます。
oc get nodepools --namespace clusters
oc get nodepools --namespace clusters
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.2.5. ホステッドクラスターへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
ホストされたクラスターには、kubeconfig
ファイルと kubeadmin
認証情報をリソースから直接取得するか、hypershift
CLI を使用して kubeconfig
ファイルを生成して、アクセスできます。
リソースから
kubeconfig
ファイルと認証情報を直接取得し、ホストされたクラスターにアクセスするには、ホストされたコントロールプレーンクラスターのアクセスシークレットを理解しておく必要があります。シークレットは、ホステッドクラスター (ホスティング) namespace に保存されます。ホステッドクラスター (ホスティング) namespace にはホステッドクラスターリソースが含まれており、Hosted Control Plane namespace では Hosted Control Plane が実行されます。シークレット名の形式は次のとおりです。
-
kubeconfig
シークレット:<hostingNamespace>-<name>-admin-kubeconfig
(clusters-hypershift-demo-admin-kubeconfig) kubeadmin
パスワードシークレット:<hostingNamespace>-<name>-kubeadmin-password
(clusters-hypershift-demo-kubeadmin-password)kubeconfig
シークレットには Base64 でエンコードされたkubeconfig
フィールドが含まれており、これをデコードしてファイルに保存し、次のコマンドで使用できます。oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get nodes
oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
kubeadmin
パスワードシークレットも Base64 でエンコードされます。これをデコードし、そのパスワードを使用して、ホステッドクラスターの API サーバーまたはコンソールにログインできます。-
hypershift
CLI を使用してホステッドクラスターにアクセスし、kubeconfig
ファイルを生成するには、次の手順を実行します。次のコマンドを入力して、
kubeconfig
ファイルを生成します。hypershift create kubeconfig --namespace ${CLUSTERS_NAMESPACE} --name ${HOSTED_CLUSTER_NAME} > ${HOSTED_CLUSTER_NAME}.kubeconfig
hypershift create kubeconfig --namespace ${CLUSTERS_NAMESPACE} --name ${HOSTED_CLUSTER_NAME} > ${HOSTED_CLUSTER_NAME}.kubeconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kubeconfig
ファイルを保存した後、次のコマンド例を入力して、ホストされたクラスターにアクセスできます。oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get nodes
oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.2.6. ホステッドコントロールプレーンクラスターの AWS へのインポート リンクのコピーリンクがクリップボードにコピーされました!
コンソールを使用して、ホストされたコントロールプレーンクラスターをインポートできます。
- Infrastructure > Clusters をクリックし、インポートするホストされたクラスターを選択します。
Import hosted cluster をクリックします。
注記: 検出された ホステッドクラスターについては、コンソールからインポートすることもできますが、クラスターはアップグレード可能な状態である必要があります。Hosted Control Plane を使用できないため、ホステッドクラスターがアップグレード可能な状態ではない場合、クラスターへのインポートは無効になります。Import をクリックして、プロセスを開始します。クラスターが更新を受信している間、ステータスは
Importing
であり、その後、Ready
に変わります。
次の手順を実行することで、コマンドラインインターフェイスを使用して、ホストされているコントロールプレーンクラスターを AWS にインポートすることもできます。
以下のコマンドを実行して、アノテーションを
HostedCluster
カスタムリソースに追加します。oc edit hostedcluster <cluster_name> -n clusters
oc edit hostedcluster <cluster_name> -n clusters
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <cluster_name>
は、ホステッドクラスターの名前に置き換えます。以下のコマンドを実行して、アノテーションを
HostedCluster
カスタムリソースに追加します。cluster.open-cluster-management.io/hypershiftdeployment: local-cluster/<cluster_name> cluster.open-cluster-management.io/managedcluster-name: <cluster_name>
cluster.open-cluster-management.io/hypershiftdeployment: local-cluster/<cluster_name> cluster.open-cluster-management.io/managedcluster-name: <cluster_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <cluster_name>
は、ホステッドクラスターの名前に置き換えます。以下のサンプル YAML ファイルを使用して、
ManagedCluster
リソースを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow <cluster_name>
は、ホステッドクラスターの名前に置き換えます。以下のコマンドを実行してリソースを適用します。
oc apply -f <file_name>
oc apply -f <file_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <file_name> を、直前の手順で作成した YAML ファイル名に置き換えます。
以下のサンプル YAML ファイルを使用して、
KlusterletAddonConfig
リソースを作成します。これは、Red Hat Advanced Cluster Management にのみ適用されます。マルチクラスターエンジン Operator のみをインストールした場合は、この手順を省略します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow <cluster_name>
は、ホステッドクラスターの名前に置き換えます。以下のコマンドを実行してリソースを適用します。
oc apply -f <file_name>
oc apply -f <file_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <file_name> を、直前の手順で作成した YAML ファイル名に置き換えます。
インポートプロセスが完了すると、ホステッドクラスターがコンソールに表示されます。以下のコマンドを実行して、ホステッドクラスターのステータスを確認することもできます。
oc get managedcluster <cluster_name>
oc get managedcluster <cluster_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.2.7. ARM64 OpenShift Container Platform クラスターでホステッドコントロールプレーンを有効にする リンクのコピーリンクがクリップボードにコピーされました!
ARM64 でホストされるコントロールプレーンを有効にして、管理クラスター環境で OpenShift Container Platform ARM64 データプレーンと連携できるようにすることができます。この機能は、AWS 上の Hosted Control Plane でのみ利用できます。
1.7.2.7.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
始める前に、次の前提条件を満たす必要があります。
- 64 ビット ARM インフラストラクチャーにインストールされた OpenShift Container Platform クラスターが必要です。詳細は、OpenShift クラスターの作成: AWS (ARM) を参照してください。
-
64 ビット ARM インフラストラクチャー上に構築された HyperShift Operator が必要です。HyperShift Operator を入手するには、hypershift/hypershift-operator リポジトリー に移動し、
4.13-arm64
タグを持つビルドを選択します。
ARM64 OpenShift Container Platform クラスター上でホストされたクラスターを実行するには、次の手順を実行します。
ARM64 用 HyperShift Operator を管理クラスターにインストールして、デフォルトの HyperShift Operator イメージをオーバーライドします。
たとえば、ホストされたコントロールプレーン (
hypershift
) コマンドラインインターフェイスを介して、バケット名、AWS 認証情報、およびリージョンを自分の情報に置き換えるよう注意しながら、次のコマンドを入力します。hypershift install \ --oidc-storage-provider-s3-bucket-name $BUCKET_NAME \ --oidc-storage-provider-s3-credentials $AWS_CREDS \ --oidc-storage-provider-s3-region $REGION \ --hypershift-image quay.io/hypershift/hypershift-operator:4.13-arm64
hypershift install \ --oidc-storage-provider-s3-bucket-name $BUCKET_NAME \ --oidc-storage-provider-s3-credentials $AWS_CREDS \ --oidc-storage-provider-s3-region $REGION \ --hypershift-image quay.io/hypershift/hypershift-operator:4.13-arm64
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトのリリースイメージをマルチアーキテクチャーリリースイメージでオーバーライドするホストされたクラスターを作成します。
たとえば、ホストされたコントロールプレーン (
hypershift
) コマンドラインインターフェイスを介して、次のコマンドを入力します。その際、クラスター名、ノードプールレプリカ、ベースドメイン、プルシークレット、AWS 認証情報、およびリージョンを実際の情報に置き換えるよう注意してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
--node-pool-replicas
フラグを使用してデフォルトのNodePool
オブジェクトを追加します。64 ビット x86
NodePool
オブジェクトをホストされたクラスターに追加します。たとえば、ホストされたコントロールプレーン (
hypershift
) コマンドラインインターフェイスを使用して、次のコマンドを入力します。クラスター名、ノードプール名、ノードプールレプリカを実際の情報に置き換えるよう注意してください。hypershift create nodepool aws \ --cluster-name $CLUSTER_NAME \ --name $NODEPOOL_NAME \ --node-count=$NODEPOOL_REPLICAS
hypershift create nodepool aws \ --cluster-name $CLUSTER_NAME \ --name $NODEPOOL_NAME \ --node-count=$NODEPOOL_REPLICAS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.2.8. AWS 上のホステッドクラスターの破棄 リンクのコピーリンクがクリップボードにコピーされました!
ホステッドクラスターとそのマネージドクラスターリソースを破棄するには、次の手順を実行します。
次のコマンドを実行して、ホステッドクラスターとそのバックエンドリソースを削除します。
hypershift destroy cluster aws --name <cluster_name> --infra-id <infra_id> --aws-creds <aws-credentials> --base-domain <base_domain>
hypershift destroy cluster aws --name <cluster_name> --infra-id <infra_id> --aws-creds <aws-credentials> --base-domain <base_domain>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必要に応じて名前を置き換えます。
次のコマンドを実行して、マルチクラスターエンジン Operator のマネージドクラスターリソースを削除します。
oc delete managedcluster <cluster_name>
oc delete managedcluster <cluster_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cluster_name
をクラスターの名前に置き換えます。
1.7.2.9. プライベートのホステッドクラスターを AWS にデプロイする (テクノロジープレビュー) リンクのコピーリンクがクリップボードにコピーされました!
ホステッドコントロールプレーン (hypershift
) コマンドラインインターフェイスを設定し、ローカルクラスターを
ホスティングクラスターとして有効にすると、ホステッドクラスターまたはプライベートのホステッドクラスターを AWS にデプロイできます。パブリックのホステッドクラスターを AWS にデプロイするには、AWS でのホステッドクラスターのデプロイ を参照してください。
デフォルトでは、Hosted Control Plane のゲストクラスターは、パブリック DNS および管理クラスターのデフォルトルーターを通じてパブリックにアクセスできます。
AWS のプライベートクラスターの場合、ゲストクラスターとのすべての通信は AWS PrivateLink 経由で行われます。AWS でプライベートクラスターをサポートするように Hosted Control Plane を設定するには、次の手順を実行します。
重要: パブリッククラスターは任意のリージョンに作成できますが、プライベートクラスターは --aws-private-region
で指定されたリージョンにのみ作成できます。
1.7.2.9.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
AWS のプライベートホストクラスターを有効にするには、まず AWS PrivateLink を有効にする必要があります。詳細は、AWS PrivateLink の有効化 を参照してください。
1.7.2.9.2. AWS 上でプライベートホストクラスターを作成する リンクのコピーリンクがクリップボードにコピーされました!
次のコマンドを入力して、プライベートクラスター IAM ポリシードキュメントを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、AWS で IAM ポリシーを作成します。
aws iam create-policy --policy-name=hypershift-operator-policy --policy-document=file://policy.json
aws iam create-policy --policy-name=hypershift-operator-policy --policy-document=file://policy.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
hypershift-operator
IAM ユーザーを作成します。aws iam create-user --user-name=hypershift-operator
aws iam create-user --user-name=hypershift-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、ポリシーを
hypershift-operator
ユーザーにアタッチします。$POLICY_ARN
は、作成したポリシーの ARN に置き換えます。aws iam attach-user-policy --user-name=hypershift-operator --policy-arn=$POLICY_ARN
aws iam attach-user-policy --user-name=hypershift-operator --policy-arn=$POLICY_ARN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、ユーザーの IAM アクセスキーを作成します。
aws iam create-access-key --user-name=hypershift-operator
aws iam create-access-key --user-name=hypershift-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、プライベートホストクラスターを作成します。必要に応じて、変数を実際の値に置き換えます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
--endpoint-access
フラグは、クラスターがパブリックかプライベートかを指定します。
クラスターの API エンドポイントには、プライベート DNS ゾーンを通じてアクセスできます。
-
api.$CLUSTER_NAME.hypershift.local
-
*.apps.$CLUSTER_NAME.hypershift.local
1.7.2.9.3. AWS 上のプライベートホスティングクラスターへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
プライベートクラスターにアクセスするには、踏み台を使用します。
次のコマンドを入力して要塞インスタンスを起動します。
$SSH_KEY
は踏み台に接続するための認証情報に置き換えます。hypershift create bastion aws --aws-creds=$AWS_CREDS --infra-id=$INFRA_ID --region=$REGION --ssh-key-file=$SSH_KEY
hypershift create bastion aws --aws-creds=$AWS_CREDS --infra-id=$INFRA_ID --region=$REGION --ssh-key-file=$SSH_KEY
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、クラスターノードプール内のノードのプライベート IP を検索します。
aws ec2 describe-instances --filter="Name=tag:kubernetes.io/cluster/$INFRA_ID,Values=owned" | jq '.Reservations[] | .Instances[] | select(.PublicDnsName=="") | .PrivateIpAddress'
aws ec2 describe-instances --filter="Name=tag:kubernetes.io/cluster/$INFRA_ID,Values=owned" | jq '.Reservations[] | .Instances[] | select(.PublicDnsName=="") | .PrivateIpAddress'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、ノードにコピーできるクラスターの
kubeconfig
ファイルを作成します。hypershift create kubeconfig > $CLUSTER_KUBECONFIG
hypershift create kubeconfig > $CLUSTER_KUBECONFIG
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
create bastion
コマンドから出力された IP を使用して踏み台を介していずれかのノードに SSH 接続します。ssh -o ProxyCommand="ssh ec2-user@$BASTION_IP -W %h:%p" core@$NODE_IP
ssh -o ProxyCommand="ssh ec2-user@$BASTION_IP -W %h:%p" core@$NODE_IP
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SSH シェルから、次のコマンドを入力して、
kubeconfig
ファイルの内容をノード上のファイルにコピーします。cat << EOF >> kubeconfig <paste kubeconfig contents> export KUBECONFIG=$PWD/kubeconfig
cat << EOF >> kubeconfig <paste kubeconfig contents> export KUBECONFIG=$PWD/kubeconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SSH シェルから、ゲストクラスターのステータスを確認するか、次の例に示すように他の
oc
コマンドを実行します。oc get clusteroperators oc get clusterversion
oc get clusteroperators oc get clusterversion
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.2.9.4. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
AWS でのパブリックホステッドクラスターのデプロイの詳細は、AWS でのホステッドクラスターのデプロイ を参照してください。
1.7.2.10. AWS インフラストラクチャーと Hosted Control Plane の IAM 権限の管理 (テクノロジープレビュー) リンクのコピーリンクがクリップボードにコピーされました!
AWS で Red Hat OpenShift Container Platform のホストされているコントロールプレーンを使用する場合、インフラストラクチャーの要件はセットアップに応じて異なります。
1.7.2.10.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
ホステッドコントロールプレーンクラスターを作成する前に、ホステッドコントロールプレーンを設定する必要があります。詳細については、ホステッドコントロールプレーンの設定 (テクノロジープレビュー) を参照してください。
1.7.2.10.2. AWS インフラストラクチャーの要件 リンクのコピーリンクがクリップボードにコピーされました!
AWS で Hosted Control Plane を使用する場合、インフラストラクチャー要件は次のカテゴリーに当てはまります。
- 任意の AWS アカウントの HyperShift Operator に必要なマネージド外のインフラストラクチャー
- ホステッドクラスターの AWS アカウント内の事前に必要な管理対象外インフラストラクチャー
- 管理 AWS アカウント内の Hosted Control Plane によって管理されるインフラストラクチャー
- ホステッドクラスターの AWS アカウント内の Hosted Control Plane によって管理されるインフラストラクチャー
- ホステッドクラスターの Kubernetes 管理インフラストラクチャー AWS アカウント
Prerequired とは、Hosted Control Plane が適切に動作するために AWS インフラストラクチャーが必要であることを意味します。Unmanaged とは、Operator またはコントローラーがインフラストラクチャーを作成しないことを意味します。次のセクションには、AWS リソースの作成に関する詳細が含まれています。
1.7.2.10.2.1. 任意の AWS アカウントの HyperShift Operator に必要なマネージド外のインフラストラクチャー リンクのコピーリンクがクリップボードにコピーされました!
任意の AWS アカウントは、ホストされるコントロールプレーンサービスのプロバイダーに依存します。
自己管理型の Hosted Control Plane では、クラスターサービスプロバイダーが AWS アカウントを制御します。クラスターサービスプロバイダー は、クラスターコントロールプレーンをホストする管理者であり、アップタイムを行います。管理対象の Hosted Control Plane では、AWS アカウントは Red Hat に属します。
HyperShift Operator の必須の非管理インフラストラクチャーでは、管理クラスター AWS アカウントに次のインフラストラクチャー要件が適用されます。
1 つの S3 バケット
- OpenID Connect (OIDC)
ルート 53 のホステッドゾーン
- ホステッドクラスターのプライベートおよびパブリックエントリーをホストするドメイン
1.7.2.10.2.2. ホステッドクラスターの AWS アカウントで事前に必要なマネージド外のインフラストラクチャー リンクのコピーリンクがクリップボードにコピーされました!
インフラストラクチャーが事前に必要であり、ホステッドクラスター AWS アカウントで管理されていない場合、すべてのアクセスモードのインフラストラクチャー要件は次のとおりです。
- 1 つの VPC
- 1 つの DHCP オプション
2 つのサブネット
- 内部データプレーンサブネットであるプライベートサブネット
- データプレーンからインターネットへのアクセスを可能にするパブリックサブネット
- 1 つのインターネットゲートウェイ
- 1 つの Elastic IP
- 1 つの NAT ゲートウェイ
- 1 つのセキュリティーグループ (ワーカーノード)
- 2 つのルートテーブル (1 つはプライベート、もう 1 つはパブリック)
- 2 つの Route 53 のホステッドゾーン
次の項目に対する十分なクォータ:
- パブリックホステッドクラスター用の 1 つの Ingress サービスロードバランサー
- プライベートホストクラスター用の 1 つのプライベートリンクエンドポイント
注記: プライベートリンクネットワーキングが機能するには、ホステッドクラスター AWS アカウントのエンドポイントゾーンが、管理クラスター AWS アカウントのサービスエンドポイントによって解決されるインスタンスのゾーンと一致する必要があります。AWS では、ゾーン名は us-east-2b
などのエイリアスであり、異なるアカウントの同じゾーンにマップされるとは限りません。そのため、プライベートリンクが機能するには、管理クラスターのリージョンのすべてのゾーンにサブネットまたはワーカーが必要です。
1.7.2.10.2.3. 管理 AWS アカウント内の Hosted Control Plane 管理インフラストラクチャー リンクのコピーリンクがクリップボードにコピーされました!
インフラストラクチャーが管理 AWS アカウントの Hosted Control Plane によって管理されている場合、インフラストラクチャーの要件は、クラスターがパブリック、プライベート、またはその組み合わせであるかによって異なります。
パブリッククラスターを使用するアカウントの場合、インフラストラクチャー要件は次のとおりです。
ネットワークロードバランサー: ロードバランサー Kube API サーバー
- Kubernetes がセキュリティーグループを作成する
ボリューム
- etcd 用 (高可用性に応じて 1 つまたは 3 つ)
- OVN-Kube 用
プライベートクラスターを使用するアカウントの場合、インフラストラクチャー要件は次のとおりです。
- ネットワークロードバランサー: ロードバランサーのプライベートルーター
- エンドポイントサービス (プライベートリンク)
パブリッククラスターとプライベートクラスターを持つアカウントの場合、インフラストラクチャー要件は次のとおりです。
- ネットワークロードバランサー: ロードバランサーのパブリックルーター
- ネットワークロードバランサー: ロードバランサーのプライベートルーター
- エンドポイントサービス (プライベートリンク)
Volumes:
- etcd の場合 (高可用性に応じて 1 つまたは 3 つ)
- OVN-Kube の場合
1.7.2.10.2.4. ホステッドクラスター内の Hosted Control Plane 管理インフラストラクチャー AWS アカウント リンクのコピーリンクがクリップボードにコピーされました!
インフラストラクチャーがホステッドクラスター AWS アカウントの Hosted Control Plane によって管理されている場合、インフラストラクチャー要件は、クラスターがパブリック、プライベート、またはその組み合わせであるかによって異なります。
パブリッククラスターを使用するアカウントの場合、インフラストラクチャー要件は次のとおりです。
-
ノードプールには、
Role
とRolePolicy
が定義された EC2 インスタンスが必要です。
プライベートクラスターを使用するアカウントの場合、インフラストラクチャー要件は次のとおりです。
- アベイラビリティーゾーンごとに 1 つのプライベートリンクエンドポイント
- ノードプールの EC2 インスタンス
パブリッククラスターとプライベートクラスターを持つアカウントの場合、インフラストラクチャー要件は次のとおりです。
- アベイラビリティーゾーンごとに 1 つのプライベートリンクエンドポイント
- ノードプールの EC2 インスタンス
1.7.2.10.2.5. ホステッドクラスターの Kubernetes 管理インフラストラクチャー AWS アカウント リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes がホステッドクラスター AWS アカウントでインフラストラクチャーを管理する場合、インフラストラクチャー要件は次のとおりです。
- デフォルトの Ingress 用のネットワークロードバランサー
- レジストリー用の S3 バケット
1.7.2.10.3. Identity and Access Management (IAM) 権限 リンクのコピーリンクがクリップボードにコピーされました!
Hosted Control Plane のコンテキストでは、コンシューマーが Amazon Resource Name (ARN) ロールを作成する役割を果たします。コンシューマー は、アクセス許可ファイルを生成する自動プロセスです。コンシューマーはコマンドラインインターフェイスまたは OpenShift Cluster Manager である可能性があります。ホストされたコントロールプレーンは、最小特権コンポーネントの原則を尊重する粒度を有効にしようとします。つまり、すべてのコンポーネントが独自のロールを使用して AWS オブジェクトを操作または作成し、ロールは製品が正常に機能するために必要なものに限定されます。
ホストされたクラスターは ARN ロールを入力として受け取り、コンシューマーは各コンポーネントの AWS 権限設定を作成します。その結果、コンポーネントは STS および事前設定された OIDC IDP を通じて認証できるようになります。
次のロールは、コントロールプレーン上で実行され、データプレーン上で動作する、Hosted Control Plane の一部のコンポーネントによって消費されます。
-
controlPlaneOperatorARN
-
imageRegistryARN
-
ingressARN
-
kubeCloudControllerARN
-
nodePoolManagementARN
-
storageARN
-
networkARN
次の例は、ホステッドクラスターからの IAM ロールへの参照を示しています。
Hosted Control Plane が使用するロールを次の例に示します。
ingressARN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow imageRegistryARN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow storageARN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow networkARN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kubeCloudControllerARN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow nodePoolManagementARN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow controlPlaneOperatorARN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.2.10.4. AWS インフラストラクチャーと IAM リソースを個別に作成する リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、hypershift create cluster aws
コマンドは、ホステッドクラスターを使用してクラウドインフラストラクチャーを作成し、それを適用します。クラウドインフラストラクチャー部分を個別に作成して、hypershift create cluster aws
コマンドをクラスターの作成のみに使用したり、クラスターを適用する前に変更できるようにレンダリングしたりすることができます。
クラウドインフラストラクチャー部分を個別に作成するには、AWS インフラストラクチャーを作成し、AWS Identity and Access (IAM) リソースを作成し、クラスターを作成する必要があります。
1.7.2.10.4.1. AWS インフラストラクチャーの作成 リンクのコピーリンクがクリップボードにコピーされました!
AWS インフラストラクチャーを作成するには、次のコマンドを入力します。
- 1
CLUSTER_NAME
を、作成しているホステッドクラスターの名前に置き換えます。この値は、クラスターの Route 53 プライベートのホステッドゾーンを作成するために使用されます。- 2
AWS_CREDENTIALS_FILE
を、VPC、サブネット、NAT ゲートウェイなどのクラスターのインフラストラクチャーリソースを作成する権限を持つ AWS 認証情報ファイルの名前に置き換えます。この値は、ワーカーが存在するゲストクラスターの AWS アカウントに対応する必要があります。- 3
BASEDOMAIN
を、ホステッドクラスター Ingress に使用する予定のベースドメインの名前に置き換えます。この値は、レコードを作成できる Route 53 パブリックゾーンに対応している必要があります。- 4
INFRA_ID
をタグを使用してインフラストラクチャーを識別する一意の名前に置き換えます。この値は、Kubernetes のクラウドコントローラーマネージャーとクラスター API マネージャーによってクラスターのインフラストラクチャーを識別するために使用されます。通常、この値はクラスターの名前 (CLUSTER_NAME
) に接尾辞を追加したものです。- 5
REGION
をクラスターのインフラストラクチャーを作成するリージョンに置き換えます。- 6
OUTPUT_INFRA_FILE
をインフラストラクチャーの ID を JSON 形式で保存するファイルの名前に置き換えます。このファイルをhypershift create cluster aws
コマンドへの入力として使用し、HostedCluster
リソースとNodePool
リソースのフィールドに値を設定できます。
コマンドを入力すると、次のリソースが作成されます。
- 1 つの VPC
- 1 つの DHCP オプション
- 1 つのプライベートサブネット
- 1 つのパブリックサブネット
- 1 つのインターネットゲートウェイ
- 1 つの NAT ゲートウェイ
- ワーカーノード用の 1 つのセキュリティーグループ
- 2 つのルートテーブル: 1 つはプライベート、もう 1 つはパブリック
- 2 つのプライベートホストゾーン: クラスター Ingress 用に 1 つ、PrivateLink 用に 1 つ (プライベートクラスターを作成する場合)
これらのリソースにはすべて、kubernetes.io/cluster/INFRA_ID=owned
タグが含まれています。ここで、INFRA_ID
はコマンドで指定した値です。
1.7.2.10.4.2. AWS IAM リソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
AWS IAM リソースを作成するには、次のコマンドを入力します。
- 1
INFRA_ID
をcreate infra aws
コマンドで指定したのと同じ ID に置き換えます。この値は、ホステッドクラスターに関連付けられている IAM リソースを識別します。- 2
AWS_CREDENTIALS_FILE
をロールなどの IAM リソースを作成する権限を持つ AWS 認証情報ファイルの名前に置き換えます。このファイルは、インフラストラクチャーを作成するために指定した認証情報ファイルと同じである必要はありませんが、同じ AWS アカウントに対応している必要があります。- 3
OIDC_BUCKET_NAME
を、OIDC ドキュメントを保存するバケットの名前に置き換えます。このバケットは、Hosted Control Plane をインストールするための前提条件として作成されました。バケットの名前は、このコマンドによって作成される OIDC プロバイダーの URL を構築するために使用されます。- 4
OIDC_BUCKET_REGION
を、OIDC バケットが存在するリージョンに置き換えます。- 5
REGION
をクラスターのインフラストラクチャーが配置されているリージョンに置き換えます。この値は、ホステッドクラスターに属するマシンのワーカーインスタンスプロファイルを作成するために使用されます。- 6
PUBLIC_ZONE_ID
をゲストクラスターのパブリックゾーンの ID に置き換えます。この値は、Ingress Operator のポリシーを作成するために使用されます。この値はcreate infra aws
コマンドによって生成されるOUTPUT_INFRA_FILE
で確認できます。- 7
PRIVATE_ZONE_ID
をゲストクラスターのプライベートゾーンの ID に置き換えます。この値は、Ingress Operator のポリシーを作成するために使用されます。この値はcreate infra aws
コマンドによって生成されるOUTPUT_INFRA_FILE
で確認できます。- 8
LOCAL_ZONE_ID
は、プライベートクラスターの作成時にゲストクラスターのローカルゾーンの ID に置き換えます。この値は、コントロールプレーンオペレーターのポリシーを作成するために使用され、PrivateLink エンドポイントのレコードを管理できるようになります。この値はcreate infra aws
コマンドによって生成されるOUTPUT_INFRA_FILE
で確認できます。- 9
OUTPUT_IAM_FILE
を IAM リソースの ID を JSON 形式で保存するファイルの名前に置き換えます。その後、このファイルをhypershift create cluster aws
コマンドへの入力として使用して、HostedCluster
リソースとNodePool
リソースのフィールドに値を設定できます。
コマンドを入力すると、次のリソースが作成されます。
- 1 つの OIDC プロバイダー。STS 認証を有効にするために必要です。
- 7 つのロール。Kubernetes コントローラーマネージャー、クラスター API プロバイダー、レジストリーなど、プロバイダーと対話するコンポーネントごとに分かれています。
- 1 つのインスタンスプロファイル。クラスターのすべてのワーカーインスタンスに割り当てられるプロファイルです。
1.7.2.10.4.3. クラスターの作成 リンクのコピーリンクがクリップボードにコピーされました!
クラスターを作成するには、次のコマンドを入力します。
- 1
INFRA_ID
をcreate infra aws
コマンドで指定したのと同じ ID に置き換えます。この値は、ホステッドクラスターに関連付けられている IAM リソースを識別します。- 2
CLUSTER_NAME
をcreate infra aws
コマンドで指定したのと同じ名前に置き換えます。- 3
AWS_CREDENTIALS
をcreate infra aws
コマンドで指定したのと同じ値に置き換えます。- 4
OUTPUT_INFRA_FILE
をcreate infra aws
コマンドの出力を保存したファイルの名前に置き換えます。- 5
OUTPUT_IAM_FILE
をcreate iam aws
コマンドの出力を保存したファイルの名前に置き換えます。- 6
PULL_SECRET_FILE
を有効な OpenShift Container Platform プルシークレットを含むファイルの名前に置き換えます。- 7 8
--generate-ssh
フラグはオプションですが、ワーカーに SSH 接続する必要がある場合に含めるとよいでしょう。SSH キーが生成され、ホステッドクラスターと同じ名 namespace にシークレットとして保存されます。
コマンドに --render
フラグを追加して、クラスターに適用する前にリソースを編集できるファイルに出力をリダイレクトすることもできます。
コマンドを実行すると、次のリソースがクラスターに適用されます。
- namespace
- プルシークレットを含むシークレット
-
HostedCluster
-
NodePool
- コントロールプレーンコンポーネントの 3 つの AWS STS シークレット
-
--generate-ssh
フラグを指定した場合は、1 つの SSH キーシークレット。
1.7.3. ベアメタルでのホスティングクラスターの設定 (テクノロジープレビュー) リンクのコピーリンクがクリップボードにコピーされました!
ホスティングクラスターとして機能するようにクラスターを設定することで、ホステッドコントロールプレーンをデプロイメントできます。ホスティングクラスターは、コントロールプレーンがホストされる OpenShift Container Platform クラスターです。ホスティングクラスターは 管理 クラスターとも呼ばれます。
注記: 管理クラスターは、マネージド クラスターとは異なります。マネージドクラスターは、ハブクラスターが管理するクラスターです。
hypershift
アドオンを使用してマネージドクラスターをホスティングクラスターとして有効にし、そのクラスターに HyperShift Operator をデプロイできます。その後、ホステッドクラスターの作成を開始できます。
マルチクラスターエンジン Operator 2.5 は、管理対象のハブクラスターであるデフォルトの local-cluster
と、ホスティングクラスターとしてのハブクラスターのみをサポートします。
ホステッドコントロールプレーンはテクノロジープレビュー機能であるため、関連コンポーネントはデフォルトで無効になっています。
Red Hat Advanced Cluster Management 2.7 では、local-cluster
としても知られるマネージドハブクラスターをホスティングクラスターとして使用できます。
重要:
- ホステッドコントロールプレーンの同じプラットフォームで、ハブクラスターとワーカーを実行します。
- エージェントプラットフォームを使用して、Hosted Control Plane をベアメタルでプロビジョニングできます。Agent プラットフォームは、Central Infrastructure Management サービスを使用して、ホステッドクラスターにワーカーノードを追加します。Central Infrastructure Management サービスの概要は、Kube API - Getting Started Guide を参照してください。
-
各ベアメタルホストは、central infrastructure management が提供する検出イメージを使用して開始する必要があります。ホストは手動で起動することも、
Cluster-Baremetal-Operator
を使用して自動化することもできます。各ホストが起動すると、エージェントプロセスが実行され、ホストの詳細が検出され、インストールが完了します。Agent
カスタムリソースは、各ホストを表します。 - エージェントプラットフォームでホステッドクラスターを作成すると、HyperShift は Hosted Control Plane (HCP) namespace に Agent Cluster API プロバイダーをインストールします。
- ノードプールをスケールアップすると、マシンが作成されます。Cluster API プロバイダーは、承認され、検証に合格し、現在使用されておらず、ノードプールの仕様で指定されている要件を満たすエージェントを見つけます。エージェントのステータスと状態を確認することで、エージェントのインストールを監視できます。
- ノードプールをスケールダウンすると、エージェントは対応するクラスターからバインド解除されます。クラスターを再利用する前に、Discovery イメージを使用してクラスターを再起動し、ノード数を更新する必要があります。
1.7.3.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
ホスティングクラスターを設定するには、次の前提条件を満たす必要があります。
- OpenShift Container Platform クラスターに multicluster engine for Kubernetes Operator 2.2 以降がインストールされている必要があります。マルチクラスターエンジン Operator は、Red Hat Advanced Cluster Management をインストールすると自動的にインストールされます。OpenShift Container Platform OperatorHub から Operator として Red Hat Advanced Cluster Management を使用せずに、マルチクラスターエンジン Operator をインストールすることもできます。
マルチクラスターエンジン Operator には、1 つ以上の OpenShift Container Platform マネージドクラスターが必要です。multicluster engine Operator バージョン 2.5 以降では、
local-cluster
が自動的にインポートされます。local-cluster
の詳細については、詳細設定 を参照してください。次のコマンドを実行して、ハブクラスターの状態を確認できます。oc get managedclusters local-cluster
oc get managedclusters local-cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - HyperShift Operator を実行するには、3 つ以上のワーカーノードを含むホスティングクラスターが必要です。
- Central Infrastructure Management を有効にする必要があります。詳細は、Central Infrastructure Management サービスの有効化 を参照してください。
- ホステッドコントロールプレーン機能を有効にする必要があります。詳細は、ホステッドコントロールプレーン機能の有効化 を参照してください。
1.7.3.2. ベアメタルインフラストラクチャーの要件 リンクのコピーリンクがクリップボードにコピーされました!
エージェントプラットフォームはインフラストラクチャーを作成しませんが、インフラストラクチャーに関して次の要件があります。
- エージェント: エージェント はディスカバリーイメージで起動され、OpenShift Container Platform ノードとしてプロビジョニングする準備ができているホストを表します。
- DNS: API および Ingress エンドポイントは、ルーティング可能である必要があります。
1.7.3.3. ベアメタル上でのホステッドコントロールプレーンの設定 リンクのコピーリンクがクリップボードにコピーされました!
前提条件を満たしたら、次の手順を実行して、ベアメタル上にホステッドコントロールプレーンを設定します。
1.7.3.4. ベアメタルでの DNS の設定 (テクノロジープレビュー) リンクのコピーリンクがクリップボードにコピーされました!
ホステッドクラスターの API サーバーは、NodePort
サービスとして公開されます。API サーバーに到達できる宛先を指す api.${HOSTED_CLUSTER_NAME}.${BASEDOMAIN}
に、DNS エントリーが存在する必要があります。
DNS エントリーは、Hosted Control Plane を実行しているマネージドクラスター内のノードの 1 つを指すレコードと同様、単純化できます。エントリーは、受信トラフィックを Ingress Pod にリダイレクトするためにデプロイされるロードバランサーを指すこともできます。
次の DNS 設定の例を参照してください。
1.7.3.5. ベアメタル上でホステッドコントロールプレーン用の InfraEnv リソースの作成 (テクノロジープレビュー) リンクのコピーリンクがクリップボードにコピーされました!
InfraEnv
は、ライブ ISO を開始しているホストがエージェントとして参加できる環境です。この場合、エージェントは Hosted Control Plane と同じ namespace に作成されます。
InfraEnv
リソースを作成します。設定を含む YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
ファイルを
infraenv-config.yaml
として保存します。 - 次のコマンドを入力して設定を適用します。
oc apply -f infraenv-config.yaml
oc apply -f infraenv-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow URL を取得して、仮想マシンまたはベアメタルマシンがエージェントとして参加できるようにするライブ ISO をダウンロードするには、次のコマンドを入力します。
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get InfraEnv ${HOSTED_CLUSTER_NAME} -ojsonpath="{.status.isoDownloadURL}"
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get InfraEnv ${HOSTED_CLUSTER_NAME} -ojsonpath="{.status.isoDownloadURL}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.3.6. InfraEnv リソースへのエージェントの追加 (テクノロジープレビュー) リンクのコピーリンクがクリップボードにコピーされました!
エージェントを追加するには、手動でマシンを設定してライブ ISO で開始するか、Metal3 を使用します。
1.7.3.6.1. エージェントを手動で追加する リンクのコピーリンクがクリップボードにコピーされました!
-
ライブ ISO をダウンロードし、それを使用してホスト (ベアメタルまたは VM) を起動します。ライブ ISO の URL は、
InfraEnv
リソースのstatus.isoDownloadURL
フィールドにあります。起動時に、ホストは Assisted Service と通信し、InfraEnv
リソースと同じ namespace にエージェントとして登録します。 エージェントとそのプロパティーの一部を一覧表示するには、次のコマンドを入力します。
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agents
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agents
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力例を参照してください。
NAME CLUSTER APPROVED ROLE STAGE 86f7ac75-4fc4-4b36-8130-40fa12602218 auto-assign e57a637f-745b-496e-971d-1abbf03341ba auto-assign
NAME CLUSTER APPROVED ROLE STAGE 86f7ac75-4fc4-4b36-8130-40fa12602218 auto-assign e57a637f-745b-496e-971d-1abbf03341ba auto-assign
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 各エージェントが作成された後、オプションでその
install_disk_id
とhostname
を仕様に設定し、次のコマンドを入力してエージェントを承認できます。oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} patch agent 86f7ac75-4fc4-4b36-8130-40fa12602218 -p '{"spec":{"installation_disk_id":"/dev/sda","approved":true,"hostname":"worker-0.example.krnl.es"}}' --type merge oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} patch agent 23d0c614-2caa-43f5-b7d3-0b3564688baa -p '{"spec":{"installation_disk_id":"/dev/sda","approved":true,"hostname":"worker-1.example.krnl.es"}}' --type merge
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} patch agent 86f7ac75-4fc4-4b36-8130-40fa12602218 -p '{"spec":{"installation_disk_id":"/dev/sda","approved":true,"hostname":"worker-0.example.krnl.es"}}' --type merge oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} patch agent 23d0c614-2caa-43f5-b7d3-0b3564688baa -p '{"spec":{"installation_disk_id":"/dev/sda","approved":true,"hostname":"worker-1.example.krnl.es"}}' --type merge
Copy to Clipboard Copied! Toggle word wrap Toggle overflow エージェントの使用が承認されていることを確認するには、次のコマンドを入力して出力を確認します。
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agents
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agents
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力例を参照してください。
NAME CLUSTER APPROVED ROLE STAGE 86f7ac75-4fc4-4b36-8130-40fa12602218 true auto-assign e57a637f-745b-496e-971d-1abbf03341ba true auto-assign
NAME CLUSTER APPROVED ROLE STAGE 86f7ac75-4fc4-4b36-8130-40fa12602218 true auto-assign e57a637f-745b-496e-971d-1abbf03341ba true auto-assign
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.3.6.2. Metal3 を使用してエージェントを追加する リンクのコピーリンクがクリップボードにコピーされました!
重要: BaremetalHost
オブジェクトは、baremetal-operator 名前空間の外部に作成されるため、すべての名前空間を監視するように Operator を設定する必要があります。
以下のコマンドを実行します。
oc patch provisioning provisioning-configuration --type merge -p '{"spec":{"watchAllNamespaces": true }}'
oc patch provisioning provisioning-configuration --type merge -p '{"spec":{"watchAllNamespaces": true }}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow metal3
Pod がopenshift-machine-api
名前空間で再起動されます。次のコマンドを入力すると、Pod のステータスが継続的にチェックされ、準備ができたらステータスが返されます。
oc wait -n openshift-machine-api $(oc get pods -n openshift-machine-api -l baremetal.openshift.io/cluster-baremetal-operator=metal3-state -o name) --for condition=containersready --timeout 5m
oc wait -n openshift-machine-api $(oc get pods -n openshift-machine-api -l baremetal.openshift.io/cluster-baremetal-operator=metal3-state -o name) --for condition=containersready --timeout 5m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、BaremetalHost オブジェクトを作成します。ベアメタルホストを起動するために必要ないくつかの変数を設定する必要があります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- BMC に接続するためのユーザー名。
- 2
- BMC に接続するためのパスワード。
- 3
- Metal3 が BMC に接続するために使用する IP アドレス。
- 4
- BareMetalHost オブジェクトの名前。この値はホスト名としても使用されます。
- 5
- マシンネットワークに接続されている NIC の MAC アドレス。
- 6
- Redfish UUID。通常、この値は
1
です。suhy-tools を使用している場合は、この値は長い UUID になります。iDrac を使用している場合は、この値はSystem.Embedded.1
になります。ベンダーに確認することを推奨します。 - 7
- 使用する Redfish プロバイダー。標準の Redfish 実装を使用するハードウェアを使用している場合は、この値を
redfish-virtualmedia
に設定できます。iDrac を使用する場合、この値はidrac-virtualmedia
です。iLO5 を使用する場合、この値はilo5-virtualmedia
です。ベンダーに確認することを推奨します。 - 8
- Redfish 接続エンドポイント。
以下の手順に従って BareMetalHost オブジェクトを作成します。
BMC シークレットを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow BareMetalHost オブジェクトを作成します。
注記:
infraenvs.agent-install.openshift.io
ラベルは、BareMetalHost の開始に使用されるInfraEnv
を指定するために使用されます。bmac.agent-install.openshift.io/hostname
ラベルは、ホスト名を手動で設定するために使用されます。インストールディスクを手動で指定する場合は、BareMetalHost 仕様の
rootDeviceHints
を使用できます。rootDeviceHints
が提供されていない場合、エージェントは、インストール要件により適したインストールディスクを選択します。rootDeviceHints の詳細は、BareMetalHost ドキュメントの rootDeviceHints セクションを参照してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow エージェントは自動的に承認されます。承認されない場合は、
bootMACAddress
が正しいことを確認してください。BareMetalHost がプロビジョニングされます。
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get bmh
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get bmh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力例を参照してください。
NAME STATE CONSUMER ONLINE ERROR AGE ocp-worker-0 provisioning true 2m50s
NAME STATE CONSUMER ONLINE ERROR AGE ocp-worker-0 provisioning true 2m50s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow BareMetalHost は最終的に
provisioned
状態に達します。oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get bmh
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get bmh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力例を参照してください。
NAME STATE CONSUMER ONLINE ERROR AGE ocp-worker-0 provisioned true 72s
NAME STATE CONSUMER ONLINE ERROR AGE ocp-worker-0 provisioned true 72s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロビジョニング済み とは、ホストが virtualCD から正しく起動するように設定されたことを意味します。エージェントが表示されるまで少し時間がかかります。
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agent
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agent
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力例を参照してください。
NAME CLUSTER APPROVED ROLE STAGE 4dac1ab2-7dd5-4894-a220-6a3473b67ee6 true auto-assign
NAME CLUSTER APPROVED ROLE STAGE 4dac1ab2-7dd5-4894-a220-6a3473b67ee6 true auto-assign
Copy to Clipboard Copied! Toggle word wrap Toggle overflow エージェントは自動的に承認されます。
他のすべてのホストに対して、このプロセスを繰り返します。
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agent
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agent
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力例を参照してください。
NAME CLUSTER APPROVED ROLE STAGE 4dac1ab2-7dd5-4894-a220-6a3473b67ee6 true auto-assign d9198891-39f4-4930-a679-65fb142b108b true auto-assign da503cf1-a347-44f2-875c-4960ddb04091 true auto-assign
NAME CLUSTER APPROVED ROLE STAGE 4dac1ab2-7dd5-4894-a220-6a3473b67ee6 true auto-assign d9198891-39f4-4930-a679-65fb142b108b true auto-assign da503cf1-a347-44f2-875c-4960ddb04091 true auto-assign
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.3.6.3. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
rootDeviceHints
の詳細は、BareMetalHost ドキュメントの rootDeviceHints セクションを参照してください。
1.7.3.7. ベアメタル上でのホステッドクラスターの作成 (テクノロジープレビュー) リンクのコピーリンクがクリップボードにコピーされました!
クラスターにデフォルトのストレージクラスが設定されていることを確認します。設定されていない場合は、PVC が保留になる可能性があります。
次のコマンドを入力し、変数例を実際の情報に置き換えます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 通常、namespace は HyperShift Operator によって作成されますが、エージェントクラスターの作成では、namespace がすでに存在している必要があるクラスター API プロバイダーロールが生成されます。
しばらくしてから、次のコマンドを入力して、Hosted control plane の Pod が稼働中であることを確認します。
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get pods
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力例を参照してください。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次に、ホスト型クラスターへのアクセス の手順に従って、ホスト型クラスターにアクセスできます。
1.7.3.8. ホスト型クラスターの作成の確認 (テクノロジープレビュー) リンクのコピーリンクがクリップボードにコピーされました!
デプロイメントプロセスが完了したら、ホステッドクラスターが正常に作成されたことを確認できます。ホステッドクラスターの作成から数分後に、次の手順に従います。
次の extract コマンドを入力して、新しいホステッドクラスターの kubeconfig を取得します。
oc extract -n kni21 secret/kni21-admin-kubeconfig --to=- > kubeconfig-kni21 # kubeconfig
oc extract -n kni21 secret/kni21-admin-kubeconfig --to=- > kubeconfig-kni21 # kubeconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kubeconfig を使用して、ホステッドクラスターのクラスター Operator を表示します。以下のコマンドを入力します。
oc get co --kubeconfig=kubeconfig-kni21
oc get co --kubeconfig=kubeconfig-kni21
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力例を参照してください。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、ホステッドクラスター上で実行中の Pod を表示することもできます。
oc get pods -A --kubeconfig=kubeconfig-kni21
oc get pods -A --kubeconfig=kubeconfig-kni21
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力例を参照してください。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.4. ベアメタルでのホステッドコントロールプレーンクラスターの管理 (テクノロジープレビュー) リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes Operator コンソール用のマルチクラスターエンジンを使用して、Red Hat OpenShift Container Platform のホステッドクラスターを作成および管理できます。ホステッドコントロールプレーンは、ベアメタル上でテクノロジープレビューとして利用できます。
1.7.4.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
ホステッドコントロールプレーンクラスターを作成する前に、ベアメタル用のホステッドコントロールプレーンを設定する必要があります。詳細については、ベアメタルでのホスティングクラスターの設定 (テクノロジープレビュー) を参照してください。
1.7.4.2. ホステッドクラスターの NodePool オブジェクトのスケーリング リンクのコピーリンクがクリップボードにコピーされました!
NodePool オブジェクトをスケーリングして、ホステッドクラスターにノードを追加します。
NodePool オブジェクトを 2 つのノードにスケーリングします。
oc -n ${CLUSTERS_NAMESPACE} scale nodepool ${NODEPOOL_NAME} --replicas 2
oc -n ${CLUSTERS_NAMESPACE} scale nodepool ${NODEPOOL_NAME} --replicas 2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ClusterAPI Agent エージェントプロバイダーは、ホステッドクラスターに割り当てられる 2 つのエージェントをランダムに選択します。これらのエージェントはさまざまな状態を経て、最終的に OpenShift Container Platform ノードとしてホステッドクラスターに参加します。エージェントは次の順序で状態を通過します。
-
binding
-
discovering
-
insufficient
-
installing
-
installing-in-progress
added-to-existing-cluster
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agent
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agent
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力例を参照してください。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
エージェントが
added-to-existing-cluster
状態に達したら、次のコマンドを入力して、OpenShift Container Platform ノードが表示されることを確認します。oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get nodes
oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力例を参照してください。
NAME STATUS ROLES AGE VERSION ocp-worker-1 Ready worker 5m41s v1.24.0+3882f8f ocp-worker-2 Ready worker 6m3s v1.24.0+3882f8f
NAME STATUS ROLES AGE VERSION ocp-worker-1 Ready worker 5m41s v1.24.0+3882f8f ocp-worker-2 Ready worker 6m3s v1.24.0+3882f8f
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cluster Operator は、ワークロードをノードに追加することによって調整を開始します。
次のコマンドを入力して、
NodePool
オブジェクトをスケールアップしたときに 2 台のマシンが作成されたことを確認します。oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get machines
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get machines
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力例を参照してください。
NAME CLUSTER NODENAME PROVIDERID PHASE AGE VERSION hypercluster1-c96b6f675-m5vch hypercluster1-b2qhl ocp-worker-1 agent://da503cf1-a347-44f2-875c-4960ddb04091 Running 15m 4.12z hypercluster1-c96b6f675-tl42p hypercluster1-b2qhl ocp-worker-2 agent://4dac1ab2-7dd5-4894-a220-6a3473b67ee6 Running 15m 4.12z
NAME CLUSTER NODENAME PROVIDERID PHASE AGE VERSION hypercluster1-c96b6f675-m5vch hypercluster1-b2qhl ocp-worker-1 agent://da503cf1-a347-44f2-875c-4960ddb04091 Running 15m 4.12z hypercluster1-c96b6f675-tl42p hypercluster1-b2qhl ocp-worker-2 agent://4dac1ab2-7dd5-4894-a220-6a3473b67ee6 Running 15m 4.12z
Copy to Clipboard Copied! Toggle word wrap Toggle overflow clusterversion
調整プロセスは最終的に、Ingress および Console クラスター Operator のみが欠落しているポイントに到達します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.4.3. ベアメタル上のホステッドクラスターでの Ingress の処理 リンクのコピーリンクがクリップボードにコピーされました!
すべての OpenShift Container Platform クラスターには、外部 DNS レコードが関連付けられていると想定されるデフォルトのアプリケーション Ingress コントローラーがセットアップされています。たとえば、ベースドメイン krnl.es
で example
という名前の HyperShift クラスターを作成する場合は、ワイルドカードドメイン *.apps.example.krnl.es
がルーティング可能であると予想することができます。
*.apps
のロードバランサーとワイルドカード DNS レコードをセットアップできます。このプロセスでは、MetalLB をデプロイし、Ingress デプロイメントにルーティングする新しいロードバランサーサービスを設定し、ワイルドカード DNS エントリーをロードバランサー IP アドレスに割り当てる必要があります。
LoadBalancer タイプのサービスを作成するときに、MetalLB がサービスの外部 IP アドレスを追加するように、
MetalLB
をセットアップします。MetalLB Operator の設定を含む YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
ファイルを
metallb-operator-config.yaml
として保存します。 - 以下のコマンドを入力して設定を適用します。
oc apply -f metallb-operator-config.yaml
oc apply -f metallb-operator-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Operator の実行後、MetalLB インスタンスを作成します。
MetalLB インスタンスの設定を含む YAML ファイルを作成します。
apiVersion: metallb.io/v1beta1 kind: MetalLB metadata: name: metallb namespace: metallb
apiVersion: metallb.io/v1beta1 kind: MetalLB metadata: name: metallb namespace: metallb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
ファイルを
metallb-instance-config.yaml
として保存します。 - 次のコマンドを入力して、MetalLB インスタンスを作成します。
oc apply -f metallb-instance-config.yaml
oc apply -f metallb-instance-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 2 つのリソースを作成して MetalLB Operator を設定します。
-
単一の IP アドレスを持つ
IPAddressPool
リソース。この IP アドレスは、クラスターノードが使用するネットワークと同じサブネット上にある必要があります。 IPAddressPool
リソースが BGP プロトコルを通じて提供するロードバランサーの IP アドレスをアドバタイズするためのBGP
アドバタイズリソース。重要: 環境のアドレスと一致するように
INGRESS_IP
環境変数を変更します。設定を含む YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
ファイルを
ipaddresspool-bgpadvertisement-config.yaml
として保存します。 - 次のコマンドを入力してリソースを作成します。
oc apply -f ipaddresspool-bgpadvertisement-config.yaml
oc apply -f ipaddresspool-bgpadvertisement-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
単一の IP アドレスを持つ
以下の手順に従って、MetalLB を介して OpenShift Container Platform ルーターを公開します。
YAML ファイルを作成して、Ingress トラフィックを Ingress デプロイメントにルーティングする LoadBalancer サービスをセットアップします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
ファイルを
metallb-loadbalancer-service.yaml
として保存します。 次のコマンドを入力して、YAML ファイルから設定を適用します。
oc apply -f metallb-loadbalancer-service.yaml
oc apply -f metallb-loadbalancer-service.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、OpenShift Container Platform コンソールにアクセスします。
curl -kI https://console-openshift-console.apps.example.krnl.es HTTP/1.1 200 OK
curl -kI https://console-openshift-console.apps.example.krnl.es HTTP/1.1 200 OK
Copy to Clipboard Copied! Toggle word wrap Toggle overflow clusterversion
とclusteroperator
の値をチェックして、すべてが実行されていることを確認します。以下のコマンドを入力します。oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get clusterversion,co
oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get clusterversion,co
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力例を参照してください。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
MetalLB の詳細については、OpenShift Container Platform ドキュメントの About MetalLB and the MetalLB Operator を参照してください。
1.7.4.4. ホステッドクラスターのノード自動スケーリングの有効化 リンクのコピーリンクがクリップボードにコピーされました!
ホステッドクラスターにさらに容量が必要で、予備のエージェントが利用可能な場合は、自動スケーリングを有効にして新しいエージェントをインストールできます。
自動スケーリングを有効にするには、次のコマンドを入力します。この場合、ノードの最小数は 2 で、最大数は 5 です。追加できるノードの最大数は、使用可能なエージェントの数によって制限されます。
oc -n ${CLUSTERS_NAMESPACE} patch nodepool ${HOSTED_CLUSTER_NAME} --type=json -p '[{"op": "remove", "path": "/spec/replicas"},{"op":"add", "path": "/spec/autoScaling", "value": { "max": 5, "min": 2 }}]'
oc -n ${CLUSTERS_NAMESPACE} patch nodepool ${HOSTED_CLUSTER_NAME} --type=json -p '[{"op": "remove", "path": "/spec/replicas"},{"op":"add", "path": "/spec/autoScaling", "value": { "max": 5, "min": 2 }}]'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 追加のキャパシティーを必要とせずに 10 分が経過すると、エージェントは廃止され、スペアキューに再び配置されます。
新しいノードを必要とするワークロードを作成します。
次の例に示すように、ワークロード設定を含む YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
ファイルを
workload-config.yaml
として保存します。 - 以下のコマンドを入力して、YAML を適用します。
oc apply -f workload-config.yaml
oc apply -f workload-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、残りのエージェントがデプロイされていることを確認します。この例では、スペアエージェント
d9198891-39f4-4930-a679-65fb142b108b
がプロビジョニングされます。oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agent -o jsonpath='{range .items[*]}BMH: {@.metadata.labels.agent-install\.openshift\.io/bmh} Agent: {@.metadata.name} State: {@.status.debugInfo.state}{"\n"}{end}'
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agent -o jsonpath='{range .items[*]}BMH: {@.metadata.labels.agent-install\.openshift\.io/bmh} Agent: {@.metadata.name} State: {@.status.debugInfo.state}{"\n"}{end}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力例を参照してください。
BMH: ocp-worker-2 Agent: 4dac1ab2-7dd5-4894-a220-6a3473b67ee6 State: added-to-existing-cluster BMH: ocp-worker-0 Agent: d9198891-39f4-4930-a679-65fb142b108b State: installing-in-progress BMH: ocp-worker-1 Agent: da503cf1-a347-44f2-875c-4960ddb04091 State: added-to-existing-cluster
BMH: ocp-worker-2 Agent: 4dac1ab2-7dd5-4894-a220-6a3473b67ee6 State: added-to-existing-cluster BMH: ocp-worker-0 Agent: d9198891-39f4-4930-a679-65fb142b108b State: installing-in-progress BMH: ocp-worker-1 Agent: da503cf1-a347-44f2-875c-4960ddb04091 State: added-to-existing-cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力してノードを確認すると、新しいノードが出力に表示されます。この例では、
ocp-worker-0
がクラスターに追加されています。oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get nodes
oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力例を参照してください。
NAME STATUS ROLES AGE VERSION ocp-worker-0 Ready worker 35s v1.24.0+3882f8f ocp-worker-1 Ready worker 40m v1.24.0+3882f8f ocp-worker-2 Ready worker 41m v1.24.0+3882f8f
NAME STATUS ROLES AGE VERSION ocp-worker-0 Ready worker 35s v1.24.0+3882f8f ocp-worker-1 Ready worker 40m v1.24.0+3882f8f ocp-worker-2 Ready worker 41m v1.24.0+3882f8f
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードを削除するには、次のコマンドを入力してワークロードを削除します。
oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig -n default delete deployment reversewords
oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig -n default delete deployment reversewords
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 10 分間待機し、次のコマンドを入力してノードが削除されたことを確認します。
oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get nodes
oc --kubeconfig ${HOSTED_CLUSTER_NAME}.kubeconfig get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の出力例を参照してください。
NAME STATUS ROLES AGE VERSION ocp-worker-1 Ready worker 51m v1.24.0+3882f8f ocp-worker-2 Ready worker 52m v1.24.0+3882f8f
NAME STATUS ROLES AGE VERSION ocp-worker-1 Ready worker 51m v1.24.0+3882f8f ocp-worker-2 Ready worker 52m v1.24.0+3882f8f
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agent -o jsonpath='{range .items[*]}BMH: {@.metadata.labels.agent-install\.openshift\.io/bmh} Agent: {@.metadata.name} State: {@.status.debugInfo.state}{"\n"}{end}' BMH: ocp-worker-2 Agent: 4dac1ab2-7dd5-4894-a220-6a3473b67ee6 State: added-to-existing-cluster BMH: ocp-worker-0 Agent: d9198891-39f4-4930-a679-65fb142b108b State: known-unbound BMH: ocp-worker-1 Agent: da503cf1-a347-44f2-875c-4960ddb04091 State: added-to-existing-cluster
oc -n ${HOSTED_CONTROL_PLANE_NAMESPACE} get agent -o jsonpath='{range .items[*]}BMH: {@.metadata.labels.agent-install\.openshift\.io/bmh} Agent: {@.metadata.name} State: {@.status.debugInfo.state}{"\n"}{end}' BMH: ocp-worker-2 Agent: 4dac1ab2-7dd5-4894-a220-6a3473b67ee6 State: added-to-existing-cluster BMH: ocp-worker-0 Agent: d9198891-39f4-4930-a679-65fb142b108b State: known-unbound BMH: ocp-worker-1 Agent: da503cf1-a347-44f2-875c-4960ddb04091 State: added-to-existing-cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.4.5. ベアメタル上のホステッドクラスターの破棄 リンクのコピーリンクがクリップボードにコピーされました!
コンソールを使用して、ベアメタルホステッドクラスターを破棄できます。ベアメタル上のホステッドクラスターを破壊するには、次の手順を実行します。
- コンソールで、Infrastructure > Clusters に移動します。
- Clusters ページで、破棄するクラスターを選択します。
- Actions メニューで Destroy clusters を選択し、クラスターを削除します。
1.7.4.6. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- SR-IOV Operator をデプロイできるようになりました。SR-IOV Operator のデプロイに関する詳細は、ホステッドコントロールプレーン用の SR-IOV Operator のデプロイ を参照してください。
1.7.5. OpenShift Virtualization でのホステッドコントロールプレーンクラスターの管理 (テクノロジープレビュー) リンクのコピーリンクがクリップボードにコピーされました!
ホストされたコントロールプレーンと Red Hat OpenShift Virtualization を使用すると、KubeVirt 仮想マシンによってホストされるワーカーノードを含む OpenShift Container Platform クラスターを作成できます。OpenShift Virtualization 上の Hosted Control Plane には、次のようないくつかの利点があります。
- ホストされたコントロールプレーンとホストされたクラスターを同じ基盤となるベアメタルインフラストラクチャーにパックすることで、リソースの使用率を向上します。
- ホストされたコントロールプレーンとゲストクラスターを分離して強力な分離を実現
- ベアメタルノードのブートストラッププロセスを排除することで、クラスターのプロビジョニング時間を短縮します。
- 同じベース OpenShift Container Platform クラスターの下で多くのリリースを管理します
OpenShift Virtualization でホストされたコントロールプレーンクラスターを作成する方法については、次のセクションを参照してください。
1.7.5.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Virtualization 上に OpenShift Container Platform クラスターを作成するには、以下の前提条件を満たす必要があります。
-
KUBECONFIG
環境変数で指定された OpenShift Container Platform クラスター、バージョン 4.12 以降への管理者アクセスが必要です。 OpenShift Container Platform マネージドクラスターでは、次の DNS に示すように、ワイルドカード DNS ルートが有効になっている必要があります。
oc patch ingresscontroller -n openshift-ingress-operator default --type=json -p '[{ "op": "add", "path": "/spec/routeAdmission", "value": {wildcardPolicy: "WildcardsAllowed"}}]'
oc patch ingresscontroller -n openshift-ingress-operator default --type=json -p '[{ "op": "add", "path": "/spec/routeAdmission", "value": {wildcardPolicy: "WildcardsAllowed"}}]'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - OpenShift Container Platform マネージドクラスターには OpenShift Virtualization がインストールされている必要があります。詳細は、Web コンソールを使用した OpenShift Virtualization のインストール を参照してください。
- OpenShift Container Platform マネージドクラスターは、デフォルトの Pod ネットワーク CNI として OVNKubernetes を使用して設定する必要があります。
OpenShift Container Platform マネージドクラスターにはデフォルトのストレージクラスが必要です。詳細は、インストール後のストレージ設定 を参照してください。次の例は、デフォルトのストレージクラスを設定する方法を示しています。
oc patch storageclass ocs-storagecluster-ceph-rbd -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
oc patch storageclass ocs-storagecluster-ceph-rbd -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
quay.io/openshift-release-dev
リポジトリーの有効なプルシークレットファイルが必要です。詳細は、ユーザーがプロビジョニングしたインフラストラクチャーを使用して x86_64 プラットフォームに OpenShift をインストールする を参照してください。 - ホステッドコントロールプレーン機能を有効にする必要があります。詳細は、ホストされたコントロールプレーン機能の有効化 を参照してください。
-
ホストされたコントロールプレーン機能を有効にした後、ホストされたコントロールプレーン (
hypershift
) コマンドラインインターフェイスバイナリーをインストールする 必要があります。 - クラスターをプロビジョニングする前に、ロードバランサーを設定する必要があります。詳細は、ロードバランサーの設定 を参照してください。
1.7.5.2. KubeVirt プラットフォームを使用したホストされたクラスターの作成 リンクのコピーリンクがクリップボードにコピーされました!
ゲストクラスターを作成するには、環境変数と
hypershift
コマンドラインインターフェイスを使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必要に応じて値を置き換えます。
注記:
--release-image
フラグを使用して、特定の OpenShift Container Platform リリースでホステッドクラスターをセットアップできます。--node-pool-replicas
フラグに従って、2 つの仮想マシンワーカーレプリカを持つクラスターに対してデフォルトのノードプールが作成されます。しばらくすると、次のコマンドを入力して、ホストされているコントロールプレーン Pod が実行されていることを確認できます。
oc -n clusters-$CLUSTER_NAME get pods
oc -n clusters-$CLUSTER_NAME get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow KubeVirt 仮想マシンによってサポートされるワーカーノードを含むゲストクラスターは、通常、完全にプロビジョニングされるまでに 10 ~ 15 分かかります。
ゲストクラスターのステータスを確認するには、対応する
HostedCluster
リソースを参照してください。oc get --namespace clusters hostedclusters
oc get --namespace clusters hostedclusters
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の出力例は、完全にプロビジョニングされた
HostedCluster
オブジェクトを示しています。出力例
NAMESPACE NAME VERSION KUBECONFIG PROGRESS AVAILABLE PROGRESSING MESSAGE clusters example 4.12.7 example-admin-kubeconfig Completed True False The hosted control plane is available
NAMESPACE NAME VERSION KUBECONFIG PROGRESS AVAILABLE PROGRESSING MESSAGE clusters example 4.12.7 example-admin-kubeconfig Completed True False The hosted control plane is available
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.5.3. ホストされたクラスターへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
ゲストクラスターへのコマンドラインインターフェイスアクセスを取得するには、ゲストクラスターの kubeconfig 環境変数を取得します。
hypershift
コマンドラインインターフェイスを使用してゲストクラスターの kubeconfig 環境変数を取得するには、次のコマンドを入力します。hypershift create kubeconfig --name $CLUSTER_NAME > $CLUSTER_NAME-kubeconfig
hypershift create kubeconfig --name $CLUSTER_NAME > $CLUSTER_NAME-kubeconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力してクラスターにアクセスします。
oc --kubeconfig $CLUSTER_NAME-kubeconfig get nodes
oc --kubeconfig $CLUSTER_NAME-kubeconfig get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME STATUS ROLES AGE VERSION example-n6prw Ready worker 32m v1.25.4+18eadca example-nc6g4 Ready worker 32m v1.25.4+18eadca
NAME STATUS ROLES AGE VERSION example-n6prw Ready worker 32m v1.25.4+18eadca example-nc6g4 Ready worker 32m v1.25.4+18eadca
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを入力してレポートを確認できます。
oc --kubeconfig $CLUSTER_NAME-kubeconfig get clusterversion
oc --kubeconfig $CLUSTER_NAME-kubeconfig get clusterversion
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version 4.12.7 True False 5m39s Cluster version is 4.12.7
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version 4.12.7 True False 5m39s Cluster version is 4.12.7
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.5.4. デフォルトの Ingress と DNS の動作 リンクのコピーリンクがクリップボードにコピーされました!
すべての OpenShift Container Platform クラスターにはデフォルトのアプリケーション Ingress コントローラーが含まれており、これにはワイルドカード DNS レコードが関連付けられている必要があります。デフォルトでは、HyperShift KubeVirt プロバイダーを使用して作成されたゲストクラスターは、自動的に KubeVirt 仮想マシンが実行される基盤となる OpenShift Container Platform クラスターのサブドメインになります。
たとえば、OpenShift Container Platform クラスターには次のデフォルトの Ingress DNS エントリーがある可能性があります。
*.apps.mgmt-cluster.example.com
*.apps.mgmt-cluster.example.com
その結果、guest
という名前が付けられ、その基礎となる OpenShift Container Platform クラスター上で実行される KubeVirt ゲストクラスターには、次のデフォルト Ingress が設定されます。
*.apps.guest.apps.mgmt-cluster.example.com
*.apps.guest.apps.mgmt-cluster.example.com
注記: デフォルトの Ingress DNS が適切に機能するには、KubeVirt 仮想マシンをホストする基盤となるクラスターでワイルドカード DNS ルートを許可する必要があります。この動作を設定するには、次のコマンドを入力します。oc patch ingresscontroller -n openshift-ingress-operator default --type=json -p '[{ "op": "add", "path": "/spec/routeAdmission", "value": {wildcardPolicy: "WildcardsAllowed"}}]'
1.7.5.5. Ingress と DNS の動作のカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
デフォルトの Ingress および DNS 動作を使用したくない場合は、作成時に一意のベースドメインを使用して KubeVirt ゲストクラスターを設定できます。このオプションでは、作成時に手動の設定手順が必要であり、クラスターの作成、ロードバランサーの作成、およびワイルドカード DNS 設定の 3 つの主要な手順が含まれます。
1.7.5.5.1. 基本ドメインを指定するホステッドクラスターのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
基本ドメインを指定するホステッドクラスターを作成するには、次のコマンドを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow その結果、クラスター名とベースドメイン、またはこの例に示すように
.apps.example.hypershift.lab
に対して設定された Ingress ワイルドカードを持つホステッドクラスターが作成されます。ホステッドクラスターはデプロイメントを完了せず、Partial
ステータスのままです。基本ドメインを設定したため、必要な DNS レコードとロードバランサーが適切に配置されていることを確認する必要があります。以下のコマンドを実行します。
oc get --namespace clusters hostedclusters
oc get --namespace clusters hostedclusters
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME VERSION KUBECONFIG PROGRESS AVAILABLE PROGRESSING MESSAGE example example-admin-kubeconfig Partial True False The hosted control plane is available
NAME VERSION KUBECONFIG PROGRESS AVAILABLE PROGRESSING MESSAGE example example-admin-kubeconfig Partial True False The hosted control plane is available
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力してクラスターにアクセスします。
hypershift create kubeconfig --name $CLUSTER_NAME > $CLUSTER_NAME-kubeconfig
hypershift create kubeconfig --name $CLUSTER_NAME > $CLUSTER_NAME-kubeconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc --kubeconfig $CLUSTER_NAME-kubeconfig get co
oc --kubeconfig $CLUSTER_NAME-kubeconfig get co
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の手順では、出力内のエラーを修正します。
注記: クラスターがベアメタル上にある場合、ロードバランサーサービスをセットアップできるように MetalLB が必要になる場合があります。詳細は、オプション: MetalLB の設定 を参照してください。
1.7.5.5.2. ロードバランサーのセットアップ リンクのコピーリンクがクリップボードにコピーされました!
KubeVirt VM にルーティングするロードバランサーをセットアップし、ワイルドカード DNS エントリーをロードバランサーの IP アドレスに割り当てます。Ingress トラフィックを KubeVirt VM にルーティングするロードバランサーサービスを作成する必要があります。ホステッドクラスター Ingress を公開する NodePort
サービスはすでに存在するため、ノードポートをエクスポートし、それらのポートを対象とするロードバランサーサービスを作成できます。
次のコマンドを入力して、ノードポートをエクスポートします。
export HTTP_NODEPORT=$(oc --kubeconfig $CLUSTER_NAME-kubeconfig get services -n openshift-ingress router-nodeport-default -o jsonpath='{.spec.ports[?(@.name=="http")].nodePort}') export HTTPS_NODEPORT=$(oc --kubeconfig $CLUSTER_NAME-kubeconfig get services -n openshift-ingress router-nodeport-default -o jsonpath='{.spec.ports[?(@.name=="https")].nodePort}')
export HTTP_NODEPORT=$(oc --kubeconfig $CLUSTER_NAME-kubeconfig get services -n openshift-ingress router-nodeport-default -o jsonpath='{.spec.ports[?(@.name=="http")].nodePort}') export HTTPS_NODEPORT=$(oc --kubeconfig $CLUSTER_NAME-kubeconfig get services -n openshift-ingress router-nodeport-default -o jsonpath='{.spec.ports[?(@.name=="https")].nodePort}')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、ロードバランサーサービスを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.5.5.3. ワイルドカード DNS の設定 リンクのコピーリンクがクリップボードにコピーされました!
ロードバランサーサービスの外部 IP を参照するワイルドカード DNS レコードまたは CNAME を設定します。
次のコマンドを入力して、外部 IP をエクスポートします。
export EXTERNAL_IP=$(oc -n clusters-$CLUSTER_NAME get service $CLUSTER_NAME-apps -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
export EXTERNAL_IP=$(oc -n clusters-$CLUSTER_NAME get service $CLUSTER_NAME-apps -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow $EXTERNAL_IP
パスに格納されている IP を参照するワイルドカード DNS エントリーを設定します。次の DNS エントリーの例を表示します。*.apps.<hosted-cluster-name\>.<base-domain\>.
*.apps.<hosted-cluster-name\>.<base-domain\>.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow DNS エントリーは、クラスターの内部と外部にルーティングできる必要があります。外部 IP 値が
192.168.20.30
であるクラスターのステップ 1 の入力例を使用すると、DNS 解決は次の例のようになります。dig +short test.apps.example.hypershift.lab 192.168.20.30
dig +short test.apps.example.hypershift.lab 192.168.20.30
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、ホストされたクラスターのステータスを確認し、
Partial
からCompleted
に移行したことを確認します。oc get --namespace clusters hostedclusters
oc get --namespace clusters hostedclusters
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME VERSION KUBECONFIG PROGRESS AVAILABLE PROGRESSING MESSAGE example 4.12.7 example-admin-kubeconfig Completed True False The hosted control plane is available
NAME VERSION KUBECONFIG PROGRESS AVAILABLE PROGRESSING MESSAGE example 4.12.7 example-admin-kubeconfig Completed True False The hosted control plane is available
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.5.6. オプション: MetalLB の設定 リンクのコピーリンクがクリップボードにコピーされました!
MetalLB などのロードバランサーを使用する必要があります。次の例は、MetalLB をインストールした後に設定する手順を示しています。MetalLB のインストールの詳細については、OpenShift Container Platform ドキュメントの MetalLB Operator のインストール を参照してください。
MetalLB インスタンスを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードネットワーク内で使用可能な IP アドレスの範囲を使用してアドレスプールを作成します。次の IP アドレス範囲を、ネットワーク内で使用可能な IP アドレスの未使用のプールに置き換えます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow L2 プロトコルを使用してアドレスプールをアドバタイズします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.5.6.1. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- MetalLB の詳細は、MetalLB Operator のインストール を参照してください。
1.7.5.7. ノードプールのスケーリング リンクのコピーリンクがクリップボードにコピーされました!
ocscale
コマンドを使用して、ノードプールを手動でスケーリングできます。NODEPOOL_NAME=${CLUSTER_NAME}-work NODEPOOL_REPLICAS=5 oc scale nodepool/$NODEPOOL_NAME --namespace clusters --replicas=$NODEPOOL_REPLICAS
NODEPOOL_NAME=${CLUSTER_NAME}-work NODEPOOL_REPLICAS=5 oc scale nodepool/$NODEPOOL_NAME --namespace clusters --replicas=$NODEPOOL_REPLICAS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow しばらくしてから、次のコマンドを入力して、ノードプールのステータスを確認します。
oc --kubeconfig $CLUSTER_NAME-kubeconfig get nodes
oc --kubeconfig $CLUSTER_NAME-kubeconfig get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.5.8. ノードプールの追加 リンクのコピーリンクがクリップボードにコピーされました!
名前、レプリカの数、およびメモリーや CPU 要件などの追加情報を指定して、ゲストクラスターのノードプールを作成できます。
ノードプールを作成するには、次の情報を入力します。この例では、ノードプールには VM に割り当てられたより多くの CPU があります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow clusters
namespace 内のnodepool
リソースをリスト表示して、ノードプールのステータスを確認します。oc get nodepools --namespace clusters
oc get nodepools --namespace clusters
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME CLUSTER DESIRED NODES CURRENT NODES AUTOSCALING AUTOREPAIR VERSION UPDATINGVERSION UPDATINGCONFIG MESSAGE example example 5 5 False False 4.12.7 example-extra-cpu example 2 False False True True Minimum availability requires 2 replicas, current 0 available
NAME CLUSTER DESIRED NODES CURRENT NODES AUTOSCALING AUTOREPAIR VERSION UPDATINGVERSION UPDATINGCONFIG MESSAGE example example 5 5 False False 4.12.7 example-extra-cpu example 2 False False True True Minimum availability requires 2 replicas, current 0 available
Copy to Clipboard Copied! Toggle word wrap Toggle overflow しばらくしてから、次のコマンドを入力してノードプールのステータスを確認できます。
oc --kubeconfig $CLUSTER_NAME-kubeconfig get nodes
oc --kubeconfig $CLUSTER_NAME-kubeconfig get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、ノードプールが予期したステータスになっていることを確認します。
oc get nodepools --namespace clusters
oc get nodepools --namespace clusters
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME CLUSTER DESIRED NODES CURRENT NODES AUTOSCALING AUTOREPAIR VERSION UPDATINGVERSION UPDATINGCONFIG MESSAGE example example 5 5 False False 4.12.7 example-extra-cpu example 2 2 False False 4.12.7 Delete a HostedCluster
NAME CLUSTER DESIRED NODES CURRENT NODES AUTOSCALING AUTOREPAIR VERSION UPDATINGVERSION UPDATINGCONFIG MESSAGE example example 5 5 False False 4.12.7 example-extra-cpu example 2 2 False False 4.12.7 Delete a HostedCluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.5.9. OpenShift Virtualization でのホストされたクラスターの作成の検証 リンクのコピーリンクがクリップボードにコピーされました!
ホストされたクラスターが正常に作成されたことを確認するには、次の手順を実行します。
次のコマンドを入力して、
HostedCluster
リソースがcompleted
状態に移行したことを確認します。oc get --namespace clusters hostedclusters ${CLUSTER_NAME}
oc get --namespace clusters hostedclusters ${CLUSTER_NAME}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAMESPACE NAME VERSION KUBECONFIG PROGRESS AVAILABLE PROGRESSING MESSAGE clusters example 4.12.2 example-admin-kubeconfig Completed True False The hosted control plane is available
NAMESPACE NAME VERSION KUBECONFIG PROGRESS AVAILABLE PROGRESSING MESSAGE clusters example 4.12.2 example-admin-kubeconfig Completed True False The hosted control plane is available
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、ゲストクラスター内のすべてのクラスターオペレーターがオンラインであることを確認します。
hypershift create kubeconfig --name $CLUSTER_NAME > $CLUSTER_NAME-kubeconfig
hypershift create kubeconfig --name $CLUSTER_NAME > $CLUSTER_NAME-kubeconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get co --kubeconfig=$CLUSTER_NAME-kubeconfig
oc get co --kubeconfig=$CLUSTER_NAME-kubeconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.5.10. OpenShift Virtualization 上のホストされたクラスターの破棄 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Virtualization でホストされたクラスターを削除するには、コマンドラインで次のコマンドを入力します。
hypershift destroy cluster kubevirt --name $CLUSTER_NAME
hypershift destroy cluster kubevirt --name $CLUSTER_NAME
必要に応じて名前を置き換えます。
1.7.6. ホステッドクラスターのワークロードの分散 (テクノロジープレビュー) リンクのコピーリンクがクリップボードにコピーされました!
管理クラスター管理者は、管理クラスターノードで次のラベルとテイントを使用して、コントロールプレーンのワークロードをスケジュールできます。
-
hypershift.openshift.io/control-plane: true
-
hypershift.openshift.io/cluster: ${HostedControlPlane Namespace}
ホステッドクラスターの Pod には許容範囲があり、スケジューラーはアフィニティールールを使用して Pod をスケジュールします。Pod は、control-plane
と Pod の cluster
のテイントを許容します。スケジューラーは、hypershift.openshift.io/control-plane
および hypershift.openshift.io/cluster: ${HostedControlPlane Namespace}
でラベル付けされたノードへの Pod のスケジューリングを優先します。
ControllerAvailabilityPolicy
オプションには、HighlyAvailable
を使用します。このオプションを使用する場合は、topology.kubernetes.io/zone を
トポロジーキーとして設定することで、さまざまな障害ドメインにわたるホステッドクラスター内のデプロイメントごとに Pod をスケジュールできます。
ホステッドクラスターがその Pod をインフラノードにスケジュールすることを要求できるようにするには、次の例に示すように HostedCluster.spec.nodeSelector
を設定します。
spec: nodeSelector: role.kubernetes.io/infra: ""
spec:
nodeSelector:
role.kubernetes.io/infra: ""
こうすることで、各テナントのホステッドコントロールプレーンが適格なインフラストラクチャーノードワークロードとなり、基盤となる OpenShift Container Platform ノードに資格を与える必要がなくなります。
1.7.6.1. 優先クラス リンクのコピーリンクがクリップボードにコピーされました!
4 つの組み込み優先クラスは、ホステッドクラスター Pod の優先順位とプリエンプションに影響を与えます。管理クラスター内に Pod は、次の上位から下位の順序で作成できます。
-
hypershift-operator
: HyperShift Operator Pod。 -
hypershift-etcd
: etcd 用の Pod。 -
hypershift-api-critical
: API 呼び出しとリソース許可が成功するために必要な Pod。これらの Pod には、kube-apiserver
、集約 API サーバー、Web フックなどの Pod が含まれます。 -
hypershift-control-plane
: API クリティカルではないものの、クラスターバージョンの Operator など、高い優先順位が必要なコントロールプレーン内の Pod。
1.7.7. ホステッドコントロールプレーン機能の無効化 リンクのコピーリンクがクリップボードにコピーされました!
HyperShift Operator をアンインストールして、Hosted Control Plane を無効にすることができます。ホステッドコントロールプレーンクラスター機能を無効にする場合は、ホステッドコントロールプレーンクラスターの管理 トピックで説明されているとおり、マルチクラスターエンジン Operator でホステッドクラスターとマネージドクラスターリソースを破棄する必要があります。
1.7.7.1. HyperShift Operator のアンインストール リンクのコピーリンクがクリップボードにコピーされました!
HyperShift Operator をアンインストールし、local-cluster
から hypershift-addon
を無効にするには、以下の手順を実行します。
以下のコマンドを実行して、ホステッドクラスターが実行されていないことを確認します。
oc get hostedcluster -A
oc get hostedcluster -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要: ホステッドクラスターが実行されている場合、
hypershift-addon
が無効になっていても、HyperShift Operator はアンインストールされません。以下のコマンドを実行して
hypershift-addon
を無効にします。oc patch mce multiclusterengine --type=merge -p '{"spec":{"overrides":{"components":[{"name":"hypershift-local-hosting","enabled": false}]}}}'
oc patch mce multiclusterengine --type=merge -p '{"spec":{"overrides":{"components":[{"name":"hypershift-local-hosting","enabled": false}]}}}'
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- デフォルトの
MultiClusterEngine
リソースインスタンス名はmulticlusterengine
ですが、$ oc get mce
コマンドを実行し、クラスターからMultiClusterEngine
名を取得できます。
ヒント:
hypershift-addon
を無効にした後、マルチクラスターエンジン Operator コンソールからlocal-cluster
のhypershift-addon
を無効にすることもできます。
1.7.7.2. ホステッドコントロールプレーン機能の無効化 リンクのコピーリンクがクリップボードにコピーされました!
Hosted Control Plane 機能を無効にする前に、まず HyperShift Operator をアンインストールする必要があります。次のコマンドを実行して、Hosted Control Plane 機能を無効にします。
oc patch mce multiclusterengine --type=merge -p '{"spec":{"overrides":{"components":[{"name":"hypershift-preview","enabled": false}]}}}'
oc patch mce multiclusterengine --type=merge -p '{"spec":{"overrides":{"components":[{"name":"hypershift-preview","enabled": false}]}}}'
- 1
- デフォルトの
MultiClusterEngine
リソースインスタンス名はmulticlusterengine
ですが、$ oc get mce
コマンドを実行し、クラスターからMultiClusterEngine
名を取得できます。
次のコマンドを実行すると、MultiClusterEngine
カスタムリソースで hypershift-preview
および hypershift-local-hosting
機能が無効になっていることを確認できます。
oc get mce multiclusterengine -o yaml
oc get mce multiclusterengine -o yaml
- 1
- デフォルトの
MultiClusterEngine
リソースインスタンス名はmulticlusterengine
ですが、$ oc get mce
コマンドを実行し、クラスターからMultiClusterEngine
名を取得できます。
hypershift-preview
と hypershift-local-hosting
の enabled:
フラグが false
に設定されている次の例を参照してください。