次の方法で共有


Azure Red Hat OpenShift 4 クラスターで Red Hat プル シークレットを追加または更新する

このガイドでは、既存の Azure Red Hat OpenShift (ARO) 4.x クラスターでの Red Hat プル シークレットの追加および更新について説明します。

クラスターを初めて作成する場合は、クラスターの作成時にプル シークレットを追加できます。 Red Hat プル シークレットを使用して ARO クラスターを作成する方法の詳細については、「Azure Red Hat OpenShift 4 クラスターを作成する」を参照してください。

[前提条件]

このガイドでは、既存の Azure Red Hat OpenShift 4 クラスターがあることを前提としています。 クラスターへの管理者アクセス権を持っていることを確認します。

プル シークレットを準備する

Red Hat プル シークレットを追加せずに ARO クラスターを作成しても、自動的にクラスターでプル シークレットが作成されます。 ただし、このプル シークレットは完全に設定されていません。

このセクションでは、Red Hat プル シークレットの他の値でプル シークレットを更新する手順について説明します。

  1. 次のコマンドを実行して、pull-secret 名前空間で openshift-config という名前のシークレットをフェッチし、個別のファイルに保存します。

    oc get secrets pull-secret -n openshift-config -o template='{{index .data ".dockerconfigjson"}}' | base64 -d > pull-secret.json
    

    出力は次の例のようになります。実際のシークレット値は削除されました。

    {
      "auths": {
        "arosvc.azurecr.io": {
          "auth": "<my-aroscv.azurecr.io-secret>"
        }
      }
    }
    
  2. Red Hat OpenShift クラスター マネージャー ポータルに移動して、 [Download pull secret](プル シークレットのダウンロード) を選択します。 Red Hat プル シークレットは次のサンプルのようになります。実際のシークレット値は削除されました。

    {
      "auths": {
        "cloud.openshift.com": {
          "auth": "<my-crc-secret>",
          "email": "violet@contoso.com"
        },
        "quay.io": {
          "auth": "<my-quayio-secret>",
          "email": "violet@contoso.com"
        },
        "registry.connect.redhat.com": {
          "auth": "<my-registry.connect.redhat.com-secret>",
          "email": "violet@contoso.com"
        },
        "registry.redhat.io": {
          "auth": "<my-registry.redhat.io-secret>",
          "email": "violet@contoso.com"
        }
      }
    }
    
  3. Red Hat プル シークレットで見つかったエントリを追加して、クラスターから取得したプル シークレット ファイルを編集します。

    重要

    Red Hat プル シークレットから cloud.openshift.com エントリを含める場合、クラスターはテレメトリ データを Red Hat に送信します。 このセクションは、利用統計情報を送信する場合にのみ含めてください。 それ以外の場合は、次のセクションを除外します。

    {
      "cloud.openshift.com": {
        "auth": "<my-crc-secret>",
        "email": "violet@contoso.com"
      }
    

    注意事項

    プル シークレットから arosvc.azurecr.io エントリを削除または変更しないでください。 このセクションは、クラスターが正常に機能するために必要です。

    "arosvc.azurecr.io": {
      "auth": "<my-aroscv.azurecr.io-secret>"
    }
    

    最終的なファイルは次の例のようになります。実際のシークレット値は削除されました。

    {
      "auths": {
        "cloud.openshift.com": {
          "auth": "<my-crc-secret>",
          "email": "violet@contoso.com"
        },
        "quay.io": {
          "auth": "<my-quayio-secret>",
          "email": "violet@contoso.com"
        },
        "registry.connect.redhat.com": {
          "auth": "<my-registry.connect.redhat.com-secret>",
          "email": "violet@contoso.com"
        },
        "registry.redhat.io": {
          "auth": "<my-registry.redhat.io-secret>",
          "email": "violet@contoso.com"
        },
        "arosvc.azurecr.io": {
          "auth": "<my-aroscv.azurecr.io-secret>"
        }
      }
    }
    
  4. 有効な JSON ファイルであることを確認してください。 JSON を検証するには、さまざまな方法があります。 次の例では、 jq を使用してファイルを検証します。

    cat pull-secret.json | jq
    

    ファイルにエラーがある場合は、 parse errorとして表示されます。

クラスターにプル シークレットを追加する

次のコマンドを実行して、プル シークレットを追加します。 ARO 4.9 以前では、このコマンドを実行すると、クラスター ノードが更新されると 1 つずつ再起動します。 ARO 4.10 以降のバージョンでは、再起動はトリガーされません。

oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=./pull-secret.json

プル シークレットが配置されていることを確認します

oc exec -n openshift-apiserver $(oc get pod -n openshift-apiserver -o jsonpath="{.items[0].metadata.name}") -- cat /var/lib/kubelet/config.json

シークレットが設定されると、Red Hat 認定オペレーターを有効にする準備が整います。

構成ファイルを変更します。

Red Hat オペレーターが有効になるように、次のオブジェクトを変更します。

Samples Operator 構成ファイルを変更します。 次に、次のコマンドを実行すると、構成ファイルを編集できます。

oc edit configs.samples.operator.openshift.io/cluster -o yaml

spec.managementState の値を Removed から Managed に変更します。

次の YAML スニペットには、編集された YAML ファイルの関連セクションのみが表示されています。

apiVersion: samples.operator.openshift.io/v1
kind: Config
metadata:

  ...

spec:
  architectures:
  - x86_64
  managementState: Managed

次のコマンドを実行して、Operator Hub 構成ファイルを編集します。

oc edit operatorhub cluster -o yaml

有効にする任意のソースで Spec.Sources.Disabled 値を true から false に変更します。

次の YAML スニペットには、編集された YAML ファイルの関連セクションのみが表示されています。

Name:         cluster

...
                 dd3310b9-e520-4a85-98e5-8b4779ee0f61
Spec:
  Sources:
    Disabled:  false
    Name:      certified-operators
    Disabled:  false
    Name:      redhat-operators

ファイルを保存して、編集を適用します。

シークレットが動作していることを確認する

プル シークレットを追加し、正しい構成ファイルを変更した後、クラスターの更新が完了するまでに数分かかる場合があります。 クラスターが更新されたことを確認するには、次のコマンドを実行して、使用可能な認定オペレーターと Red Hat Operators のソースを表示します。

$ oc get catalogsource -A
NAMESPACE               NAME                  DISPLAY               TYPE   PUBLISHER   AGE
openshift-marketplace   certified-operators   Certified Operators   grpc   Red Hat     10s
openshift-marketplace   community-operators   Community Operators   grpc   Red Hat     18h
openshift-marketplace   redhat-operators      Red Hat Operators     grpc   Red Hat     11s

認定オペレーターと Red Hat オペレーターが表示されない場合は、しばらく待ってから再度試してください。

プル シークレットが更新され、機能していることを確認するには、 OperatorHub を開き、Red Hat 検証済みオペレーターを確認します。 たとえば、OpenShift Container Storage オペレーターが使用可能かどうかを確認し、インストールするためのアクセス許可を持っているかどうかを確認します。

次のステップ