1.4.3. CLI からのインストール

  1. Operator 要件を満たしたハブクラスター namespace を作成します。

    oc create namespace <namespace>

    namespace はお使いのハブクラスター namespace 名に置き換えます。注記:: namespace の値は、Red Hat OpenShift Container Platform 環境では プロジェクト と呼ばれる場合があります。

    重要: ClusterRoleBinding が指定された ServiceAccount には、Red Hat Advanced Cluster Management がインストールされている namespace にアクセス権があるユーザー認証情報および、Red Hat Advanced Cluster Management に対して、クラスター管理者権限が割り当てられます。このインストールでは、local-cluster という名前の namespace も作成されます。この namespace は、単独で管理できるようにハブクラスター向けに確保されます。local-cluster という既存の namespace を含めることはできません。セキュリティーの理由上、クラスター管理者のアクセス権がないユーザーには、local-cluster namespace へのアクセス権を割り当てないようにしてください。

  2. プロジェクトの namespace を、作成した namespace に切り替えます。

    oc project <namespace>

    namespace は、手順 1 で作成したハブクラスター namespace 名に置き換えます。

  3. 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 で操作を行うようにしてください。

    1. cloud.redhat.com/openshift/install/pull-secret から Download pull secret を選択して、OpenShift Container Platform のプルシークレットファイルをダウンロードします。OpenShift Container Platform プルシークレットは Red Hat カスタマーポータル ID に関連しており、すべての Kubernetes プロバイダーで同じです。
    2. 以下のコマンドを実行してシークレットを作成します。

      oc create secret generic <secret> -n <namespace> --from-file=.dockerconfigjson=<path-to-pull-secret> --type=kubernetes.io/dockerconfigjson

      secret は作成するシークレット名に置き換えます。namespace はプロジェクトの namespace に置き換えます。path-to-pull-secret はダウンロードする OpenShift Container Platform のプルシークレットへのパスに置き換えます。

  4. Operator グループを作成します。namespace ごとに割り当てることのできる Operator グループ は 1 つだけです。

    1. Operator グループを定義する .yaml ファイルを作成します。ファイルは以下の例のようになります。

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: <default>
      spec:
        targetNamespaces:
        - <namespace>

      default はお使いの operator グループ名に置き換えます。namespace はお使いのプロジェクトの namespace に置き換えます。

    2. 作成したファイルを適用して Operator グループを定義します。

      oc apply -f local/<operator-group>.yaml

      operator-group は、作成した operator グループの .yaml ファイル名に置き換えます。

  5. サブスクリプションを適用します。

    1. サブスクリプションを定義する .yaml ファイルを作成します。ファイルは以下の例のようになります。

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: acm-operator-subscription
      spec:
        sourceNamespace: openshift-marketplace
        source: redhat-operators
        channel: release-2.1
        installPlanApproval: Automatic
        name: advanced-cluster-management
    2. サブスクリプションを適用します。

      oc apply -f local/<subscription>.yaml

      subscription は、作成したサブスクリプションファイルの名前に置き換えます。

  6. MultiClusterHub のカスタムリソースを適用します。

    1. カスタムリソースを定義する .yaml ファイルを作成します。

      • プルシークレットを作成していない場合のデフォルトのテンプレートは、以下の例のようになります。

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

        namespace はお使いのプロジェクトの namespace 名に置き換えます。

      • プルシークレットを作成している場合のデフォルトのテンプレートは、以下の例のようになります。

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

        namespace はお使いのプロジェクトの namespace 名に置き換えます。

        secret は、プルシークレット名に置き換えます。

    2. オプション: 必要に応じて、ハブの自己管理を無効にします。デフォルトでは、ハブクラスターは他のクラスターと同様に自動的にインポートされ、管理されます。ハブクラスターでの自己管理をしない場合は、disableHubSelfManagement の設定を false から true に変更します。プルシークレットを作成しており、disableHubSelfManagement 機能を有効にしている場合には、デフォルトのテンプレートは以下の例のようになります。

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

      namespace はお使いのプロジェクトの namespace 名に置き換えます。

      secret は、プルシークレット名に置き換えます。

    3. カスタムリソースを適用します。

      oc apply -f local/<custom-resource>.yaml

      custom-resource は、カスタムリソースファイル名に置き換えます。

      重要: local-cluster namespace は、インポートされた自己管理のハブクラスターに使用します。インストール前に、クラスターに local-cluster namespace を含めることはできません。ハブクラスターに local-cluster namespace が作成されると、local-cluster namespace へのアクセス権があるユーザーには自動的に cluster administrator のアクセス権が付与されます。セキュリティーの理由上、クラスター管理者のアクセス権がないユーザーには、local-cluster namespace へのアクセス権を割り当てないようにしてください。

      以下のエラーで、この手順に失敗した場合でも、リソースは作成され、適用されます。

      error: unable to recognize "./mch.yaml": no matches for kind "MultiClusterHub" in version "operator.open-cluster-management.io/v1"

      リソースが作成されてから数分後にもう一度コマンドを実行します。

  7. 以下のコマンドを実行して、MultiClusterHub カスタムリソースのステータスが status.phase フィールドに Running と表示されるまで、最長 10 分の時間がかかる可能性があります。

    oc get mch -o=jsonpath='{.items[0].status.phase}'
  8. ステータスが Running になってから、ルートの一覧を確認してルートを探し出します。

    oc get routes

Red Hat Advanced Cluster Management を再インストールして、Pod が起動しない場合には、この問題の回避手順について「再インストールに失敗する場合のトラブルシューティング」を参照してください。