クラスター
クラスターのライフサイクルの詳細をご覧ください。
概要
第1章 クラスターライフサイクルのアーキテクチャー
Red Hat Advanced Cluster Management for Kubernetes には、主に 2 つのタイプのクラスターがあります。ハブクラスター と マネージドクラスター です。これらは、Kubernetes Operator のマルチクラスターエンジンによって作成および管理されます。インストールからトラブルシューティングまでのすべてをカバーする Kubernetes のマルチクラスターエンジンの概要 を参照してください。
クラスターのライフサイクルフェーズでクラスターの追加と管理を続けるには、マルチクラスターエンジン Operator のクラスターライフサイクルの概要 とその Operator のすべてのドキュメントから始める必要があります。
クラスターは、Red Hat OpenShift Container Platform クラスターインストーラーと Hive リソースを使用して作成されます。クラスターをインストールするプロセスの詳細については、OpenShift Container Platform ドキュメントの OpenShift Container Platform インストールの概要 を参照してください。
クラスターライフサイクル管理アーキテクチャーのコンポーネントは、クラスターライフサイクルアーキテクチャー に含まれています。
ハブクラスターは、Red Hat Advanced Cluster Management for Kubernetes でインストールされたメインとなるクラスターのことです。ハブクラスターを使用して他の Kubernetes クラスターの作成、管理、および監視を行うことができます。マネージドクラスターは、ハブクラスターが管理する Kubernetes クラスターです。Red Hat Advanced Cluster Management ハブクラスターを使用してクラスターを作成することもできますが、ハブクラスターで管理する既存のクラスターをインポートすることもできます。
リリースイメージは、クラスターの作成時に使用する OpenShift Container Platform のバージョンです。Red Hat Advanced Cluster Management を使用して作成されたクラスターの場合、リリースイメージの自動アップグレードを有効にできます。Red Hat Advanced Cluster Management のリリースイメージの詳細は、リリースイメージ を参照してください。
1.1. リリースイメージ
Red Hat Advanced Cluster Management for Kubernetes を使用してプロバイダーでクラスターを作成する場合は、新規クラスターに使用するリリースイメージを指定する必要があります。リリースイメージでは、クラスターのビルドに使用する Red Hat OpenShift Container Platform のバージョンを指定します。
acm-hive-openshift-releases
GitHub リポジトリーの YAML ファイルを使用して、リリースイメージを参照します。Red Hat Advanced Cluster Management はこれらのファイルを使用して、コンソールで利用可能なリリースイメージの一覧を作成します。これには、OpenShift Container Platform における最新の fast チャネルイメージが含まれます。コンソールには、OpenShift Container Platform の 3 つの最新バージョンの最新リリースイメージのみが表示されます。たとえば、コンソールオプションに以下のリリースイメージが表示される可能性があります。
- quay.io/openshift-release-dev/ocp-release:4.6.23-x86_64
- quay.io/openshift-release-dev/ocp-release:4.10.1-x86_64
注記: コンソールでクラスターの作成時に選択できるのは、visible: 'true'
のラベルが付いたリリースイメージのみです。ClusterImageSet
リソースのこのラベルの例は以下の内容で提供されます。
apiVersion: config.openshift.io/v1 kind: ClusterImageSet metadata: labels: channel: fast visible: 'true' name: img4.10.1-x86-64-appsub spec: releaseImage: quay.io/openshift-release-dev/ocp-release:4.10.1-x86_64
追加のリリースイメージは保管されますが、コンソールには表示されません。利用可能なすべてのリリースイメージを表示するには、CLI で kubectl get clusterimageset
を実行します。最新のリリースイメージでクラスターを作成することが推奨されるため、コンソールには最新バージョンのみがあります。特定バージョンのクラスター作成が必要となる場合があります。そのため、古いバージョンが利用可能となっています。Red Hat Advanced Cluster Management はこれらのファイルを使用して、コンソールで利用可能なリリースイメージの一覧を作成します。これには、OpenShift Container Platform における最新の fast チャネルイメージが含まれます。
リポジトリーには、clusterImageSets
ディレクトリーと subscription
ディレクトリーが含まれます。これらのディレクトリーは、リリースイメージの操作時に使用します。
clusterImageSets
ディレクトリーには以下のディレクトリーが含まれます。
- Fast: サポート対象の各 OpenShift Container Platform バージョンのリリースイメージの内、最新バージョンを参照するファイルが含まれます。このフォルダー内のリリースイメージはテストされ、検証されており、サポートされます。
- Releases: 各 OpenShift Container Platform バージョン (stable、fast、および candidate チャネル) のリリースイメージをすべて参照するファイルが含まれます。注記: このリリースはすべてテストされ、安定していると判別されているわけではありません。
- Stable: サポート対象の各 OpenShift Container Platform バージョンのリリースイメージの内、最新の安定版 2 つを参照するファイルが含まれます。
注記: デフォルトでは、リリースイメージの現在の一覧は 1 時間ごとに更新されます。製品をアップグレードした後、リストに製品の新しいバージョンの推奨リリースイメージバージョンが反映されるまでに最大 1 時間かかる場合があります。
独自の ClusterImageSets
は以下の 3 つの方法でキュレートできます。
3 つの方法のいずれかの最初のステップは、最新の fast チャンネルイメージを自動的に更新する付属のサブスクリプションを無効にすることです。最新の fast の ClusterImageSets
の自動キュレーションを無効にするには、multiclusterhub
リソースでインストーラーパラメーターを使用します。spec.disableUpdateClusterImageSets
パラメーターを true
と false
の間で切り替えることにより、Red Hat Advanced Cluster Management でインストールしたサブスクリプションが、それぞれ無効または有効になります。独自のイメージをキューレートする場合は、spec.disableUpdateClusterImageSets
を true
に設定してサブスクリプションを無効にします。
オプション 1: クラスターの作成時にコンソールで使用する特定の ClusterImageSet
のイメージ参照を指定します。指定する新規エントリーはそれぞれ保持され、将来のすべてのクラスタープロビジョニングで利用できます。たとえば、エントリーは quay.io/openshift-release-dev/ocp-release:4.6.8-x86_64
のようになります。
オプション 2: GitHub リポジトリー acm-hive-openshift-releases
から YAML ファイル ClusterImageSets
を手動で作成し、適用します。
オプション 3: GitHub リポジトリー acm-hive-openshift-releases
の README.md
に従って、フォークした GitHub リポジトリーから ClusterImageSets
の自動更新を有効にします。
subscription
ディレクトリーには、リリースイメージの一覧がプルされる場所を指定するファイルが含まれます。
Red Hat Advanced Cluster Management のデフォルトのリリースイメージは、Quay.io デフォルトで提供されます。
イメージは、リリース 2.5 の acm-hive-openshift-releases GitHub repository のファイルで参照されます。
1.1.1. 別のアーキテクチャーにクラスターをデプロイするためのリリースイメージの作成
両方のアーキテクチャーのファイルを含むリリースイメージを手動で作成することで、ハブクラスターのアーキテクチャーとは異なるアーキテクチャーでクラスターを作成できます。
たとえば、ppc64le
、aarch64
、または s390x
アーキテクチャーで実行されているハブクラスターから x86_64
クラスターを作成する必要があるとします。両方のファイルセットでリリースイメージを作成する場合に、新規のリリースイメージにより OpenShift Container Platform リリースレジストリーがマルチアーキテクチャーイメージマニフェストを提供できるので、クラスターの作成は成功します。
OpenShift Container Platform 4.11 以降は、デフォルトで複数のアーキテクチャーをサポートします。以下の clusterImageSet
を使用してクラスターをプロビジョニングできます。
apiVersion: hive.openshift.io/v1 kind: ClusterImageSet metadata: labels: channel: fast visible: 'true' name: img4.12.0-multi-appsub spec: releaseImage: quay.io/openshift-release-dev/ocp-release:4.12.0-multi
複数のアーキテクチャーをサポートしない OpenShift Container Platform イメージのリリースイメージを作成するには、アーキテクチャータイプについて以下のような手順を実行します。
OpenShift Container Platform リリースレジストリー から、
x86_64
、s390x
、aarch64
、およびppc64le
リリースイメージを含む マニフェスト一覧 を作成します。以下のコマンド例を使用して、Quay リポジトリー から環境内の両方のアーキテクチャーのマニフェスト一覧をプルします。
podman pull quay.io/openshift-release-dev/ocp-release:4.10.1-x86_64 podman pull quay.io/openshift-release-dev/ocp-release:4.10.1-ppc64le podman pull quay.io/openshift-release-dev/ocp-release:4.10.1-s390x podman pull quay.io/openshift-release-dev/ocp-release:4.10.1-aarch64
イメージを管理するプライベートリポジトリーにログインします。
podman login <private-repo>
private-repo
は、リポジトリーへのパスに置き換えます。環境に適用される以下のコマンドを実行して、リリースイメージマニフェストをプライベートリポジトリーに追加します。
podman push quay.io/openshift-release-dev/ocp-release:4.10.1-x86_64 <private-repo>/ocp-release:4.10.1-x86_64 podman push quay.io/openshift-release-dev/ocp-release:4.10.1-ppc64le <private-repo>/ocp-release:4.10.1-ppc64le podman push quay.io/openshift-release-dev/ocp-release:4.10.1-s390x <private-repo>/ocp-release:4.10.1-s390x podman push quay.io/openshift-release-dev/ocp-release:4.10.1-aarch64 <private-repo>/ocp-release:4.10.1-aarch64
private-repo
は、リポジトリーへのパスに置き換えます。新規情報のマニフェストを作成します。
podman manifest create mymanifest
両方のリリースイメージへの参照をマニフェスト一覧に追加します。
podman manifest add mymanifest <private-repo>/ocp-release:4.10.1-x86_64 podman manifest add mymanifest <private-repo>/ocp-release:4.10.1-ppc64le podman manifest add mymanifest <private-repo>/ocp-release:4.10.1-s390x podman manifest add mymanifest <private-repo>/ocp-release:4.10.1-aarch64
private-repo
は、リポジトリーへのパスに置き換えます。マニフェストリストの一覧を既存のマニフェストにマージします。
podman manifest push mymanifest docker://<private-repo>/ocp-release:4.10.1
private-repo
は、リポジトリーへのパスに置き換えます。
ハブクラスターで、リポジトリーのマニフェストを参照するリリースイメージを作成します。
以下の例のような情報を含む YAML ファイルを作成します。
apiVersion: hive.openshift.io/v1 kind: ClusterImageSet metadata: labels: channel: fast visible: "true" name: img4.10.1-appsub spec: releaseImage: <private-repo>/ocp-release:4.10.1
private-repo
は、リポジトリーへのパスに置き換えます。ハブクラスターで以下のコマンドを実行し、変更を適用します。
oc apply -f <file-name>.yaml
file-name
を、先の手順で作成した YAML ファイルの名前に置き換えます。
- OpenShift Container Platform クラスターの作成時に新規リリースイメージを選択します。
- Red Hat Advanced Cluster Management コンソールを使用してマネージドクラスターをデプロイする場合は、クラスター作成のプロセス時に Architecture フィールドにマネージドクラスターのアーキテクチャーを指定します。
作成プロセスでは、マージされたリリースイメージを使用してクラスターを作成します。
1.1.2. 接続時におけるリリースイメージのカスタム一覧の管理
すべてのクラスターに同じリリースイメージが使用されるようにします。クラスターの作成時に利用可能なリリースイメージのカスタム一覧を作成し、作業を簡素化します。利用可能なリリースイメージを管理するには、以下の手順を実行します。
-
インストーラーが管理する
acm-hive-openshift-releases
サブスクリプションが有効になっている場合は、multiclusterhub
リソースのdisableUpdateClusterImageSets
の値をtrue
に設定して無効にします。 - acm-hive-openshift-releases GitHub repository 2.5 branch をフォークします。
./subscribe/channel.yaml
ファイルを更新して、stolostron
ではなく、フォークしたリポジトリーの GitHub 名にアクセスするようにspec: pathname
を変更します。この手順では、ハブクラスターによるリリースイメージの取得先を指定します。更新後の内容は以下の例のようになります。spec: type: Git pathname: https://github.com/<forked_content>/acm-hive-openshift-releases.git
forked_content
はフォークしたリポジトリーのへのパスに置き換えます。Red Hat Advanced Cluster Management for Kubernetes を使用して、クラスターの作成時に使用できるように、イメージの YAML ファイルを ./clusterImageSets/stable/* または ./clusterImageSets/fast/* に追加します。
ヒント: フォークしたリポジトリーに変更をマージして、メインのリポジトリーから利用可能な YAML ファイルを取得できます。
- フォークしたリポジトリーに変更をコミットし、マージします。
acm-hive-openshift-releases
リポジトリーをクローンした後に fast リリースイメージの一覧を同期するには、以下のコマンドを入力して fast イメージを更新します。make subscribe-fast
注記: この
make
コマンドは、Linux または MacOS のオペレーティングシステムを使用している場合のみ実行できます。このコマンドを実行後に、利用可能な fast リリースイメージの一覧が、現在利用可能なイメージに約 1 分ほどで更新されます。
デフォルトでは、fast イメージのみが一覧表示されます。stable リリースイメージを同期して表示するには、以下のコマンドを実行します。
make subscribe-stable
注記: この
make
コマンドは、Linux または MacOS のオペレーティングシステムを使用している場合のみ実行できます。このコマンドを実行後に、利用可能な安定版のリリースイメージの一覧が、現在利用可能なイメージに約 1 分ほどで更新されます。
デフォルトでは、Red Hat Advanced Cluster Management は、複数の ClusterImageSets を事前に読み込みます。以下のコマンドを使用して、利用可能ものを表示し、デフォルトの設定を削除します。
oc get clusterImageSets oc delete clusterImageSet <clusterImageSet_NAME>
注記:
multiclusterhub
のdisableUpdateClusterImageSets
の値をtrue
に設定して、インストーラー管理のClusterImageSets
の自動更新をまだ無効にしていない場合は、削除するイメージが自動的に再作成されます。- クラスターの作成時に、Red Hat Advanced Cluster Management コンソールで現在利用可能なリリースイメージの一覧を表示します。
1.1.3. 利用可能なリリースイメージの同期
リリースイメージは頻繁に更新されるため、リリースイメージの一覧を同期して、利用可能な最新バージョンを選択できるようにする必要があります。リリースイメージは、リリース 2.5 の acm-hive-openshift-releases の GitHub リポジトリーから入手できます。
リリースイメージの安定性には、以下の 3 つのレベルがあります。
カテゴリー | 説明 |
stable | 完全にテストされたイメージで、クラスターを正常にインストールしてビルドできることが確認されています。 |
fast | 部分的にテスト済みですが、stable バージョンよりも安定性が低い可能性があります。 |
candidate | テストはしていませんが、最新のイメージです。バグがある可能性もあります。 |
一覧を更新するには、以下の手順を実行します。
-
インストーラーが管理する
acm-hive-openshift-releases
サブスクリプションが有効になっている場合は、multiclusterhub
リソースのdisableUpdateClusterImageSets
の値をtrue
に設定してサブスクリプションを無効にします。 - リリース 2.5 の acm-hive-openshift-releases GitHub リポジトリーのクローンを作成します。
以下のコマンドのようなコマンドを入力して、サブスクリプションを削除します。
oc delete -f subscribe/subscription-fast
以下のコマンドを入力して、stable リリースイメージに接続し、Red Hat Advanced Cluster Management for Kubernetes のハブクラスターに同期します。
make subscribe-stable
注記: この
make
コマンドは、Linux または MacOS のオペレーティングシステムを使用している場合のみ実行できます。約 1 分後に、
安定
版のリリースイメージの最新の一覧が利用可能になります。Fast リリースイメージを同期して表示するには、以下のコマンドを実行します。
make subscribe-fast
注記: この
make
コマンドは、Linux または MacOS のオペレーティングシステムを使用している場合のみ実行できます。このコマンド実行の約 1 分後に、利用可能な
stable
とfast
のリリースイメージの一覧が、現在利用可能なイメージに更新されます。candidate
リリースイメージを同期して表示するには、以下のコマンドを実行します。make subscribe-candidate
注記: この
make
コマンドは、Linux または MacOS のオペレーティングシステムを使用している場合のみ実行できます。このコマンド実行の約 1 分後に、利用可能な
stable
、fast
、およびcandidate
のリリースイメージの一覧が、現在利用可能なイメージに更新されます。
- クラスターの作成時に、Red Hat Advanced Cluster Management コンソールで現在利用可能なリリースイメージの一覧を表示します。
以下の形式でコマンドを入力して、これらのチャネルのサブスクライブを解除して更新の表示を停止することができます。
oc delete -f subscribe/subscription-fast
1.2. クラスターの klusterlet アドオン設定の変更
ハブクラスターを使用して設定を変更するには、KlusterletAddonConfig
の設定を変更します。
KlusterletAddonConfig
コントローラーは、klusterletaddonconfigs.agent.open-cluster-management.io
Kubernetes リソースの設定に合わせて有効化/無効化される機能を管理します。以下で KlusterletAddonConfig
を参照してください。
apiVersion: agent.open-cluster-management.io/v1 kind: KlusterletAddonConfig metadata: name: <cluster-name> namespace: <cluster-name> spec: clusterName: <cluster-name> clusterNamespace: <cluster-name> clusterLabels: cloud: auto-detect vendor: auto-detect applicationManager: enabled: true certPolicyController: enabled: true iamPolicyController: enabled: true policyController: enabled: true searchCollector: enabled: false version: 2.5.0
1.2.1. klusterlet アドオン設定の説明
以下の設定は、klusterletaddonconfigs.agent.open-cluster-management.io
の Kubernetes リソースで更新できます。
設定名 | 値 | 説明 |
---|---|---|
applicationmanager |
| このコントローラーは、マネージドクラスターでアプリケーションのサブスクリプションライフサイクルを管理します。 |
certPolicyController |
| このコントローラーは、マネージドクラスターで証明書ベースのポリシーを有効にします。 |
iamPolicyController |
| このコントローラーは、マネージドクラスターで IAM ベースのポリシーライフサイクルを有効にします。 |
policyController |
| このコントローラーは、マネージドクラスターの他の全ポリシールールを有効にします。 |
searchCollector |
| このコントローラーを使用して、リソースインデックスデータをハブクラスターに定期的に戻します。 |
1.2.2. ハブクラスターのコンソールを使用した変更
ハブクラスターを使用して、klusterletaddonconfigs.agent.open-cluster-management.io
リソースの設定を変更できます。設定の変更には、以下の手順を実行します。
- ハブクラスターの Red Hat Advanced Cluster Management for Kubernetes コンソールにログインします。
- ハブクラスターコンソールのヘッダーメニューから Search アイコンを選択します。
-
検索パラメーターに、
kind:klusterletaddonconfigs
の値を入力します。 - 更新するエンドポイントリソースを選択します。
-
spec
セクションから、Edit を選択してコンテンツを編集します。 - 設定を変更します。
- Save を選択して変更を適用します。
1.2.3. ハブクラスターのコマンドラインを使用した変更
ハブクラスターを使用して設定を変更するには、cluster-name
namespace へのアクセス権が必要です。以下の手順を実行します。
- ハブクラスターにログインします。
以下のコマンドを入力してリソースを編集します。
kubectl edit klusterletaddonconfigs.agent.open-cluster-management.io <cluster-name> -n <cluster-name>
-
spec
セクションを検索します。 - 必要に応じて設定を変更します。