1.5. MultiClusterHub 詳細設定

Red Hat Advanced Cluster Management for Kubernetes は、必要なコンポーネントをすべてデプロイする Operator でインストールします。Red Hat Advanced Cluster Management は、以下の 1 つ以上の属性を MultiClusterHub カスタムリソースに追加することで、インストール時にまたはインストール後にさらに設定できます。

1.5.1. カスタムイメージプルシークレット

OpenShift Container Platform または Red Hat Advanced Cluster Management で作成されていない Kubernetes クラスターをインポートする予定がある場合は、OpenShift Container Platform プルシークレットの情報を含むシークレットを生成して、ディストリビューションレジストリーから資格のあるコンテンツにアクセスします

OpenShift Container Platform クラスターのシークレット要件は、OpenShift Container Platform および Red Hat Advanced Cluster Management により自動で解決されるため、他のタイプの Kubernetes クラスターをインポートして管理しない場合は、このシークレットを作成する必要がありません。OpenShift Container Platform プルシークレットは Red Hat カスタマーポータル ID に関連しており、すべての Kubernetes プロバイダーで同じです。

重要: これらのシークレットは、namespace ごとに異なるため、手順 1 で作成した namespace で操作を行うようにしてください。

  1. cloud.redhat.com/openshift/install/pull-secret に移動して、OpenShift Container Platform のプルシークレットファイルをダウンロードします。
  2. Download pull secret をクリックします。
  3. 以下のコマンドを実行してシークレットを作成します。

    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 のプルシークレットへのパスに置き換えます。

以下の例では、カスタムプルシークレットを使用する場合に使用する spec.imagePullSecret テンプレートを表示しています。secret は、プルシークレット名に置き換えます。

apiVersion: operator.open-cluster-management.io/v1
kind: MultiClusterHub
metadata:
  name: multiclusterhub
  namespace: <namespace>
spec:
  imagePullSecret: <secret>

1.5.2. availabilityConfig

Red Hat Advanced Cluster Management ハブクラスターには、HighBasic の 2 つのアイラビリティーがあります。デフォルトでは、ハブクラスターには High の可用性があります。これにより、ハブクラスターコンポーネントに replicaCount 2 が提供されます。これにより、フェイルオーバー時のサポートが向上しますが、Basic 可用性よりも多くのリソースを消費します。これにより、コンポーネントには replicaCount 1 が提供されます。

以下の例は、Basic の可用性のある spec.availabilityConfig テンプレートを示しています。

apiVersion: operator.open-cluster-management.io/v1
kind: MultiClusterHub
metadata:
  name: multiclusterhub
  namespace: <namespace>
spec:
  availabilityConfig: "Basic"

1.5.3. nodeSelector

Red Hat Advanced Cluster Management ハブクラスターでノードセレクターのセットを定義して、クラスターの特定のノードにインストールできます。以下の例は、node-role.kubernetes.io/infra ラベルの付いたノードに Red Hat Advanced Cluster Management Pod を割り当てる spec.nodeSelector を示しています。

apiVersion: operator.open-cluster-management.io/v1
kind: MultiClusterHub
metadata:
  name: multiclusterhub
  namespace: <namespace>
spec:
  nodeSelector:
    node-role.kubernetes.io/infra: ""

1.5.4. tolerations

容認の一覧を定義して、Red Hat Advanced Cluster Management ハブクラスターがクラスターで定義された特定のテイントを容認できるようにします。

以下の例は、node-role.kubernetes.io/infra テイントに一致する spec.tolerations を示しています。

apiVersion: operator.open-cluster-management.io/v1
kind: MultiClusterHub
metadata:
  name: multiclusterhub
  namespace: <namespace>
spec:
  tolerations:
  - key: node-role.kubernetes.io/infra
    effect: NoSchedule
    operator: Exists

以前の infra-node 容認は、設定に容認を指定せずにデフォルトで Pod に設定されます。設定で容認をカスタマイズすると、このデフォルトが置き換えられます。

1.5.5. disableHubSelfManagement

デフォルトでは、Red Hat Advanced Cluster Management ハブクラスターは、自動的にインポートされ、管理されます。この マネージド ハブクラスターの名前は local-cluster です。

注記: Kubernetes Operator クラスターのマルチクラスターエンジンを管理している Red Hat Advanced Cluster Management ハブクラスターでは、以前の手動設定はすべてこのアクションに置き換えられます。

Red Hat Advanced Cluster Management ハブクラスターが自己管理しない場合は、spec. disableHubSelfManagement の設定を false から true に変更する必要があります。この設定が、カスタムリソースを定義する YAML ファイルに含まれていない場合は、これを追加する必要があります。ハブクラスターは、このオプションでのみ管理できます。

このオプションを true に設定し、ハブの管理を試みると、予期しない動作が発生します。

以下の例は、ハブクラスターの自己管理機能を無効にする場合に使用するデフォルトのテンプレートです。namespace はお使いのプロジェクト名に置き換えます。

apiVersion: operator.open-cluster-management.io/v1
kind: MultiClusterHub
metadata:
  name: multiclusterhub
  namespace: <namespace>
spec:
  disableHubSelfManagement: true

デフォルトの local-cluster を有効にするには、設定を false に戻すか、この設定を削除します。

1.5.6. disableUpdateClusterImageSets

すべてのクラスターに同じリリースイメージを使用するようにする必要がある場合は、クラスターの作成時に利用可能なリリースイメージのカスタム一覧を作成できます。

利用可能なリリースイメージを管理し、カスタムイメージリストの上書きを停止する spec.disableUpdateClusterImageSets 属性を設定するには、接続時におけるリリースイメージのカスタム一覧の管理 の次の手順を参照してください。

以下の例は、クラスターイメージセットへの更新を無効にするデフォルトのテンプレートです。namespace はお使いのプロジェクト名に置き換えます。

apiVersion: operator.open-cluster-management.io/v1
kind: MultiClusterHub
metadata:
  name: multiclusterhub
  namespace: <namespace>
spec:
  disableUpdateClusterImageSets: true

1.5.7. customCAConfigmap

デフォルトで、Red Hat OpenShift Container Platform は Ingress Operator を使用して内部 CA を作成します。

以下の例は、カスタマイズされた OpenShift Container Platform のデフォルト Ingress CA 証明書を Red Hat Advanced Cluster Management に提供するのに使用されるデフォルトのテンプレートです。namespace はお使いのプロジェクト名に置き換えます。spec.customCAConfigmap の値は ConfigMap の名前に置き換えます。

apiVersion: operator.open-cluster-management.io/v1
kind: MultiClusterHub
metadata:
  name: multiclusterhub
  namespace: <namespace>
spec:
  customCAConfigmap: <configmap>

1.5.8. sslCiphers

デフォルトでは、Red Hat Advanced Cluster Management ハブクラスターには、サポートされる SSL 暗号の詳細一覧が含まれます。

以下の例は、管理 Ingress の sslCiphers を一覧表示するの使用されるデフォルトの spec.ingress.sslCiphers テンプレートです。namespace はお使いのプロジェクト名に置き換えます。

apiVersion: operator.open-cluster-management.io/v1
kind: MultiClusterHub
metadata:
  name: multiclusterhub
  namespace: <namespace>
spec:
  ingress:
    sslCiphers:
    - "ECDHE-ECDSA-AES128-GCM-SHA256"
    - "ECDHE-RSA-AES128-GCM-SHA256"

1.5.9. ClusterBackup

enableClusterBackup フィールドはサポートされなくなり、このコンポーネントに置き換えられました。

以下の例は、ClusterBackup の有効化に使用される spec.overrides のデフォルトテンプレートです。namespace はお使いのプロジェクト名に置き換えます。

apiVersion: operator.open-cluster-management.io/v1
kind: MultiClusterHub
metadata:
  name: multiclusterhub
  namespace: <namespace>
spec:
  overrides:
    components:
    - name: cluster-backup
      enabled: true

あるいは、以下のコマンドを実行します。namespace はお使いのプロジェクト名に置き換えます。

oc patch MultiClusterHub multiclusterhub -n <namespace> --type=json -p='[{"op": "add", "path": "/spec/overrides/components/-","value":{"name":"cluster-backup","enabled":true}}]'

1.5.10. ManagedServiceAccount アドオン (テクノロジープレビュー)

以下の例は、ManagedServiceAccount を有効にするために使用される spec.overrides のデフォルトテンプレートです。namespace はお使いのプロジェクト名に置き換えます。

apiVersion: operator.open-cluster-management.io/v1
kind: MultiClusterHub
metadata:
  name: multiclusterhub
  namespace: <namespace>
spec:
  overrides:
    components:
    - name: managedserviceaccount-preview
      enabled: true

あるいは、以下のコマンドを実行します。namespace はお使いのプロジェクト名に置き換えます。

oc patch MultiClusterHub multiclusterhub -n <namespace> --type=json -p='[{"op": "add", "path": "/spec/overrides/components/-","value":{"name":"managedserviceaccount-preview","enabled":true}}]'

1.5.11. hypershift アドオン (テクノロジープレビュー)

以下の例は、Hypershift の有効化に使用される spec.overrides のデフォルトテンプレートです。namespace はお使いのプロジェクト名に置き換えます。

apiVersion: operator.open-cluster-management.io/v1
kind: MultiClusterHub
metadata:
  name: multiclusterhub
  namespace: <namespace>
spec:
  overrides:
    components:
    - name: hypershift-preview
      enabled: true

あるいは、以下のコマンドを実行します。namespace はお使いのプロジェクト名に置き換えます。

oc patch MultiClusterHub multiclusterhub -n <namespace> --type=json -p='[{"op": "add", "path": "/spec/overrides/components/-","value":{"name":"hypershift-preview","enabled":true}}]'