1.4. 非接続環境での Multicluster Global Hub のインストール
クラスターが制限付きネットワーク内にある場合は、非接続環境に Multicluster Global Hub Operator をデプロイメントできます。
必要なアクセス権: クラスター管理者
1.4.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
非接続環境に Multicluster Global Hub をインストールする前に、次の要件を満たす必要があります。
- インターネットとミラーレジストリーの両方にアクセスできるイメージレジストリーと bastion ホスト
- Operator Lifecycle Manager をクラスターにインストールする。Operator Lifecycle Manager (OLM) を参照してください。
- Red Hat Advanced Cluster Management for Kubernetes をインストールする。
以下のコマンドラインインターフェイスをインストールする。
- OpenShift Container Platform コマンドライン。OpenShift Container Platform CLI のスタートガイド を参照してください。
-
opmコマンドライン。opm CLI のインストール を参照してください。 -
oc-mirrorプラグイン。oc-plugin プラグインを使用した非接続インストールのイメージのミラーリング を参照してください。
1.4.2. ミラーレジストリーの設定 リンクのコピーリンクがクリップボードにコピーされました!
非接続環境に Multicluster Global Hub をインストールするには、ローカルミラーイメージレジストリーを使用する必要があります。この時点では、OpenShift Container Platform クラスターのインストール中にミラーレジストリーを設定済みであることを前提としています。
以下の手順に従って、Multicluster Global Hub のミラーレジストリーをプロビジョニングします。
1.4.2.1. oc-mirror プラグインを使用したミラーカタログでの Operator パッケージの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat は、Multicluster Global Hub および AMQ Streams Operator を Red Hat Operator カタログで提供しており、これらは、registry.redhat.io/redhat/redhat-operator-index インデックスイメージによって提供されます。このカタログインデックスイメージのミラーを準備する場合に、Red Hat が提供するカタログ全体をミラーリングするか、使用する Operator パッケージのみを含むサブセットをミラーリングするかを選択できます。
フルミラーカタログを作成する場合、Multicluster Global Hub および AMQ Streams のインストールに必要なすべてのパッケージが含まれているため、特別な考慮事項はありません。ただし、特定のパッケージを含めるかを特定するために、一部または絞り込んだミラーリングカタログを作成する場合には、multicluster-global-hub-operator-rh と amq-streams のパッケージ名をリストに含める必要があります。
multicluster-global-hub-operator-rh および amq-streams パッケージのローカルミラーレジストリーを作成するには、以下の手順を実行します。
ImageSetConfigurationYAML ファイルを作成し、Operator イメージを設定して追加します。YAML ファイルは次の内容のようになり、現在のバージョンを4.xに置き換えます。kind: ImageSetConfiguration apiVersion: mirror.openshift.io/v1alpha2 storageConfig: registry: imageURL: myregistry.example.com:5000/mirror/oc-mirror-metadata mirror: platform: channels: - name: stable-4.x type: ocp operators: - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.x packages: - name: multicluster-global-hub-operator-rh - name: amq-streams additionalImages: [] helm: {}次のコマンドを使用して、イメージセットをターゲットミラーレジストリーに直接ミラーリングします。
oc mirror --config=./imageset-config.yaml docker://myregistry.example.com:5000- 完全な非接続環境でイメージセットをミラーリングします。詳細は、Mirroring images for a disconnected installationを参照してください。
1.4.2.2. 非接続クラスターへのレジストリーとカタログの追加 リンクのコピーリンクがクリップボードにコピーされました!
非接続クラスターでミラーレジストリーとカタログを使用できるようにするには、以下の手順を実行します。
Operator Hub のデフォルトのカタログソースを無効にします。以下のコマンドを実行して
OperatorHubリソースを更新します。oc patch OperatorHub cluster --type json \ -p '[{"op": "add", "path": "/spec/disableAllDefaultSources", "value": true}]'- Operator カタログのミラーリング の手順を実行して、Operator カタログをミラーリングします。
ミラーリングされたカタログの
CatalogSourceリソースをopenshift-marketplacenamespace に追加します。CatalogSourceYAML ファイルは、次の例のようになります。4.xはサポートされるバージョンに設定します。apiVersion: operators.coreos.com/v1alpha1 kind: CatalogSource metadata: name: my-mirror-catalog-source namespace: openshift-marketplace spec: image: myregistry.example.com:5000/mirror/my-operator-index:v4.x sourceType: grpc secrets: - <global-hub-secret>-
注記:
metadata.nameフィールドの値に注意してください。
-
注記:
- 更新したファイルを保存します。
利用可能な
PackageManifestリソースをクエリーして、非接続クラスターから必要なパッケージが利用できることを確認します。以下のコマンドを実行します。oc -n openshift-marketplace get packagemanifests表示されるリストには
multicluster-global-hub-operator-rhおよびamq-streamsパッケージがミラーカタログのカタログソースによって提供されていることを示すエントリーが含まれているはずです。
1.4.3. イメージレジストリーの設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスターがインターネットでホストされているレジストリーからではなく、ローカルミラーレジストリーから Multicluster Global Hub Operator のコンテナーイメージを取得できるようにするには、非接続クラスターで ImageContentSourcePolicy リソースを設定し、イメージ参照をミラーレジストリーにリダイレクトする必要があります。ImageContentSourcePolicy は、digest イメージを使用したイメージミラーのみをサポートします。
oc adm catalog mirror コマンドを使用してカタログをミラーリングした場合に、必要なイメージコンテンツソースポリシー設定は、そのコマンドによって作成される manifests-* ディレクトリー内の imageContentSourcePolicy.yaml ファイルにあります。
代わりに oc-mirror プラグインを使用してカタログをミラーリングした場合に、imageContentSourcePolicy.yaml ファイルは oc-mirror プラグインによって作成された oc-mirror-workspace/results- ディレクトリー内にあります。
いずれの場合も、oc replace -f ./<path>/imageContentSourcePolicy.yaml のような oc apply または oc replace コマンドを使用して、ネットワーク接続なしのコマンドにポリシーを適用できます。
必要なイメージコンテンツソースポリシーステートメントは、ミラーレジストリーの作成方法によって異なりますが、次の例のようになります。
apiVersion: operator.openshift.io/v1alpha1
kind: ImageContentSourcePolicy
metadata:
labels:
operators.openshift.org/catalog: "true"
name: global-hub-operator-icsp
spec:
repositoryDigestMirrors:
- mirrors:
- myregistry.example.com:5000/multicluster-globalhub
source: registry.redhat.io/multicluster-globalhub
- mirrors:
- myregistry.example.com:5000/openshift4
source: registry.redhat.io/openshift4
- mirrors:
- myregistry.example.com:5000/redhat
source: registry.redhat.io/redhat
ManagedClusterImageRegistry を使用して、マネージドハブごとに異なるイメージレジストリーを設定できます。ManagedClusterImageRegistry API を使用してエージェントイメージを置き換える方法は、ManagedClusterImageRegistry を持つクラスターのインポート を参照してください。
前の手順を完了すると、選択した ManagedCluster にラベルとアノテーションが追加されます。これは、クラスター内のエージェントイメージがミラーイメージに置き換えられることを意味します。
-
ラベル:
multicluster-global-hub.io/image-registry=<namespace.managedclusterimageregistry-name> -
アノテーション:
multicluster-global-hub.io/image-registries: <image-registry-info>
1.4.3.1. イメージプルシークレットを設定する リンクのコピーリンクがクリップボードにコピーされました!
サブスクライブされた Operator によって参照される Operator または Operand イメージがプライベートレジストリーへのアクセスを必要とする場合は、クラスター内のすべての namespace へのアクセスを提供するか、個々のターゲットテナント namespace へのアクセスを提供する ことができます。
1.4.3.1.1. OpenShift Container Platform クラスターでの Multicluster Global Hub イメージプルシークレットの設定 リンクのコピーリンクがクリップボードにコピーされました!
イメージプルシークレットを既存の OpenShift Container Platform クラスターに設定できます。
注記: 既存のクラスターにイメージプルシークレットを適用すると、すべてのノードがローリング再起動されます。
プルシークレットを設定するには、以下の手順を実行します。
プルシークレットからユーザー名をエクスポートします。
export USER=<the-registry-user>プルシークレットからパスワードをエクスポートします。
export PASSWORD=<the-registry-password>プルシークレットをコピーします。
oc get secret/pull-secret -n openshift-config --template='{{index .data ".dockerconfigjson" | base64decode}}' > pull_secret.yamlプルシークレットを使用してログインします。
oc registry login --registry=${REGISTRY} --auth-basic="$USER:$PASSWORD" --to=pull_secret.yamlMulticluster Global Hub イメージプルシークレットを指定します。
oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=pull_secret.yaml古いプルシークレットを削除します。
rm pull_secret.yaml
1.4.3.1.2. Multicluster Global Hub イメージプルシークレットの個別の namespace への設定 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順を実行することで、イメージプルシークレットを個別の namespace に設定できます。
次のコマンドを実行して、テナントの namespace にシークレットを作成します。
oc create secret generic <secret_name> -n <tenant_namespace> \ --from-file=.dockerconfigjson=<path/to/registry/credentials> \ --type=kubernetes.io/dockerconfigjsonシークレットをオペレーターまたはオペランドのサービスアカウントにリンクします。
oc secrets link <operator_sa> -n <tenant_namespace> <secret_name> --for=pull
1.4.3.2. グローバルハブオペレーターのインストール リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Container Platform Web コンソールを使用して、OperatorHub から Operator をインストールしてサブスクライブできます。手順は、Operator のクラスターへの追加 を参照してください。Operator を追加した後、次のコマンドを実行して、Multicluster Global Hub Operator のステータスを確認できます。
oc get pods -n multicluster-global-hub
NAME READY STATUS RESTARTS AGE
multicluster-global-hub-operator-687584cb7c-fnftj 1/1 Running 0 2m12s
1.4.4. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- ミラーレジストリーの作成の詳細は、ミラーレジストリーの作成 を参照してください。
- イメージのミラーリングの詳細は、非接続インストールのミラーリング を参照してください。
- Operator カタログのミラーリングの詳細は、Operator カタログのミラーリング を参照してください。