1.4.5. CLI からのインストール
Red Hat OpenShift Dedicated 環境のみに必要なアクセス: クラスターの管理者のデフォルトの dedicated-admin
ロールには Red Hat OpenShift Dedicated 環境での namespace の作成に必要なパーミッションがありません。cluster-admin
パーミッションが必要です。
Operator 要件を満たしたハブクラスター namespace を作成します。以下のコマンドを実行して、
namespace
はお使いのハブクラスターの namespace 名になります。namespace
の値は、OpenShift Container Platform 環境では プロジェクト と呼ばれる場合があります。oc create namespace <namespace>
プロジェクトの namespace を、作成した namespace に切り替えます。
namespace
は、手順 1 で作成したハブクラスター namespace 名に置き換えます。oc project <namespace>
OpenShift Container Platform または Red Hat Advanced Cluster Management で作成されていない Kubernetes クラスターをインポートする予定の場合には、OpenShift Container Platform プルシークレットの情報を含むシークレットを生成して、ディストリビューションレジストリーから資格のあるコンテンツにアクセスしますOpenShift Container Platform クラスターのシークレット要件は、OpenShift Container Platform および Red Hat Advanced Cluster Management により自動で解決されるので、他のタイプの Kubernetes クラスターをインポートして管理しない場合には、このシークレットを作成する必要はありません。重要: これらのシークレットは、namespace ごとに異なるので、手順 1 で作成した namespace で操作を行うようにしてください。
- cloud.redhat.com/openshift/install/pull-secret から Download pull secret を選択して、OpenShift Container Platform のプルシークレットファイルをダウンロードします。OpenShift Container Platform プルシークレットは Red Hat カスタマーポータル ID に関連しており、すべての Kubernetes プロバイダーで同じです。
以下のコマンドを実行してシークレットを作成します。
oc create secret generic <secret> -n <namespace> --from-file=.dockerconfigjson=<path-to-pull-secret> --type=kubernetes.io/dockerconfigjson
secret
は作成するシークレット名に置き換えます。シークレットは namespace 固有であるため、namespace
はプロジェクトの namespace に置き換えます。path-to-pull-secret
はダウンロードした OpenShift Container Platform のプルシークレットへのパスに置き換えます。
Operator グループを作成します。namespace ごとに割り当てることのできる Operator グループ は 1 つだけです。
Operator グループを定義する YAML ファイルを作成します。ファイルは以下の例のようになります。
default
はお使いの operator グループ名に置き換えます。namespace
はお使いのプロジェクトの namespace 名に置き換えます。apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: <default> spec: targetNamespaces: - <namespace>
作成したファイルを適用して Operator グループを定義します。
oc apply -f <path-to-file><operator-group>.yaml
operator-group
は、作成した operator グループの YAML ファイル名に置き換えます。
サブスクリプションを適用します。
サブスクリプションを定義する YAML ファイルを作成します。ファイルは以下の例のようになります。
apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: acm-operator-subscription spec: sourceNamespace: openshift-marketplace source: redhat-operators channel: release-2.3 installPlanApproval: Automatic name: advanced-cluster-management
infra ノードにインストールする場合は、以下を追加します。
spec: config: nodeSelector: node-role.kubernetes.io/infra: "" tolerations: - key: node-role.kubernetes.io/infra effect: NoSchedule operator: Exists
-
以下のコマンドを実行します。
subscription
は、作成したサブスクリプションファイル名に置き換えます。
oc apply -f <path-to-file><subscription>.yaml
MultiClusterHub のカスタムリソースを適用します。
カスタムリソースを定義する YAML ファイルを作成します。
-
デフォルトのテンプレートは、以下の例のようになります。
namespace
はお使いのプロジェクトの namespace 名に置き換えます。プルシークレットを作成していない場合には、これは表示されません。作成済みの場合には、secret
は、プルシークレット名に置き換えます。
apiVersion: operator.open-cluster-management.io/v1 kind: MultiClusterHub metadata: name: multiclusterhub namespace: <namespace> spec: imagePullSecret: <secret>
-
デフォルトのテンプレートは、以下の例のようになります。
-
オプション: インストーラーが管理する
acm-hive-openshift-releases
サブスクリプションが有効になっている場合は、disableUpdateClusterImageSets の値を
。true
に設定してサブスクリプションを無効にすることができます オプション: 必要に応じて、ハブの自己管理を無効にします。デフォルトでは、ハブクラスターは他のクラスターと同様に自動的にインポートされ、管理されます。ハブクラスターでの自己管理をしない場合は、
disableHubSelfManagement
の設定をfalse
からtrue
に変更します。プルシークレットを作成しており、
disableHubSelfManagement
機能を有効にしている場合には、デフォルトのテンプレートは以下の例のようになります。namespace
はお使いのプロジェクトの namespace 名に置き換えます。secret
は、プルシークレット名に置き換えます。apiVersion: operator.open-cluster-management.io/v1 kind: MultiClusterHub metadata: name: multiclusterhub namespace: <namespace> spec: imagePullSecret: <secret> disableHubSelfManagement: true
以下のコマンドを使用して、カスタムリソースを適用します。
custom-resource
は、カスタムリソースファイル名に置き換えます。oc apply -f <path-to-file><custom-resource>.yaml
以下のエラーで、この手順に失敗した場合でも、リソースは作成され、適用されます。リソースが作成されてから数分後にもう一度コマンドを実行します。
error: unable to recognize "./mch.yaml": no matches for kind "MultiClusterHub" in version "operator.open-cluster-management.io/v1"
以下のコマンドを実行してカスタムリソースを編集します。以下のコマンドを実行して、
MultiClusterHub
カスタムリソースのステータスがstatus.phase
フィールドにRunning
と表示されるまで、最長 10 分の時間がかかる可能性があります。oc get mch -o=jsonpath='{.items[0].status.phase}'
ステータスが
Running
になってから、ルートの一覧を確認してルートを探し出します。oc get routes
Red Hat Advanced Cluster Management を再インストールして、Pod が起動しない場合には、この問題の回避手順について「再インストールに失敗する場合のトラブルシューティング」を参照してください。