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 プル シークレットからの追加の値でプル シークレットを更新する手順について説明します。
次のコマンドを実行して、
openshift-config
名前空間でpull-secret
という名前のシークレットをフェッチし、個別のファイルに保存します。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>" } } }
Red Hat OpenShift クラスター マネージャー ポータルに移動して、 [Download pull secret](プル シークレットのダウンロード) を選択します。 Red Hat プル シークレットは、次のようになります。 (実際のシークレット値は削除されていることに注意してください。)
{ "auths": { "cloud.openshift.com": { "auth": "<my-crc-secret>", "email": "klamenzo@redhat.com" }, "quay.io": { "auth": "<my-quayio-secret>", "email": "klamenzo@redhat.com" }, "registry.connect.redhat.com": { "auth": "<my-registry.connect.redhat.com-secret>", "email": "klamenzo@redhat.com" }, "registry.redhat.io": { "auth": "<my-registry.redhat.io-secret>", "email": "klamenzo@redhat.com" } } }
Red Hat プル シークレットで見つかったエントリを追加して、クラスターから取得したプル シークレット ファイルを編集します。
重要
Red Hat プル シークレットからの
cloud.openshift.com
エントリを含めると、クラスターで Red Hat への利用統計情報の送信が開始されます。 このセクションは、利用統計情報を送信する場合にのみ含めてください。 それ以外の場合は、次のセクションを省略してください。{ "cloud.openshift.com": { "auth": "<my-crc-secret>", "email": "klamenzo@redhat.com" }
注意事項
プル シークレットからの
arosvc.azurecr.io
エントリは削除したり、変更したりしないでください。 このセクションは、クラスターが正常に機能するために必要です。"arosvc.azurecr.io": { "auth": "<my-aroscv.azurecr.io-secret>" }
最終ファイルは次のようになります。 (実際のシークレット値は削除されていることに注意してください。)
{ "auths": { "cloud.openshift.com": { "auth": "<my-crc-secret>", "email": "klamenzo@redhat.com" }, "quay.io": { "auth": "<my-quayio-secret>", "email": "klamenzo@redhat.com" }, "registry.connect.redhat.com": { "auth": "<my-registry.connect.redhat.com-secret>", "email": "klamenzo@redhat.com" }, "registry.redhat.io": { "auth": "<my-registry.redhat.io-secret>", "email": "klamenzo@redhat.com" }, "arosvc.azurecr.io": { "auth": "<my-aroscv.azurecr.io-secret>" } } }
有効な JSON ファイルであることを確認してください。 JSON を検証するには、さまざまな方法があります。 次の例では、jq を使用します。
cat pull-secret.json | jq
注意
ファイル内にエラーがある場合は、
parse error
が表示されます。
クラスターにプル シークレットを追加する
次のコマンドを実行して、プル シークレットを追加します。
Note
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 オペレーターが有効になるように、次のオブジェクトを変更します。
最初に、サンプル オペレーター構成ファイルを変更します。 次に、次のコマンドを実行すると、構成ファイルを編集できます。
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
次に、次のコマンドを実行して、オペレーター ハブ構成ファイルを編集します。
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 オペレーターのソースを表示します。
$ 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 オペレーターが使用可能かどうかを確認し、インストールするためのアクセス許可を持っているかどうかを確認します。
次のステップ
Red Hat プル シークレットの詳細については、「イメージ プル シークレットの使用」を参照してください。
Red Hat OpenShift 4 の詳細については、Red Hat OpenShift Container Platform に関するドキュメントを参照してください。