5.4.3. グローバルクラスタープルシークレットの更新
OpenShift Container Platform クラスターに新しいレジストリーを追加したり、認証を更新したりするには、additional-pull-secret に新しい認証情報を追加することで、グローバルプルシークレットを更新できます。これを行うには、`oc set data secret/additional-pull-secret -n kube-system` コマンドを使用できます。Hypershift は、HostedCluster ノード間での新しい認証情報の伝播を管理します。
グローバルプルシークレットは HostedControlPlane 専用の機能であり、OCP 単体の機能ではありません。
クラスターを別の所有者に譲渡するには、OpenShift Cluster Manager で譲渡を開始してから、クラスターのプルシークレットを更新する必要があります。OpenShift Cluster Manager で委譲を開始せずに、クラスターのプルシークレットを更新すると、クラスターは OpenShift Cluster Manager での Telemetry メトリクスの報告を停止します。
詳細は、Red Hat OpenShift Cluster Manager のドキュメントの 関連情報 にある クラスター所有権の移転を 参照してください。
前提条件
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。
手順
オプション: 既存のプルシークレットに新しいプルシークレットを追加するには:
以下のコマンドを入力して、プルシークレットをダウンロードしてください。
$ oc get secret/pull-secret -n openshift-config --template='{{index .data ".dockerconfigjson" | base64decode}}' > <pull_secret_location>各項目の説明:
<pull_secret_location>- プルシークレットファイルへのパスを指定します。
以下のコマンドを入力して、新しいプルシークレットを追加します。
$ oc registry login --registry="<registry>" \ --auth-basic="<username>:<password>" \ --to=<pull_secret_location>各項目の説明:
<registry>-
新しいレジストリーを指定します。同じレジストリー内に複数のリポジトリーを指定できます (例:
--registry="<registry/my-namespace/my-repository>)。 < ユーザー名 >:< パスワード >- 新しいレジストリーの認証情報を指定します。
<pull_secret_location>- プルシークレットファイルへのパスを指定します。
以下のコマンドを入力して、クラスターのグローバルプルシークレットを更新してください。このアップデートはすべてのノードに順次展開されるため、クラスターの規模によっては時間がかかる場合がありますのでご注意ください。
$ oc set data secret/pull-secret -n openshift-config \ --from-file=.dockerconfigjson=<pull_secret_location>各項目の説明:
<pull_secret_location>- 新しいプルシークレットファイルへのパスを指定します。
これにより、追加したプルシークレットが元の HostedCluster プルシークレットと統合され、クラスター内のすべてのノードで利用できるようになります。
オプション: 以下のコマンドを入力して、追加されたプルシークレットを変更します。
$ oc edit secret additional-pull-secret -n kube-systemシークレットには有効な DockerConfigJSON 形式が含まれている必要があります。
プルシークレットの例
apiVersion: v1 kind: Secret metadata: name: additional-pull-secret namespace: kube-system type: kubernetes.io/dockerconfigjson data: .dockerconfigjson: <base64-encoded-docker-config-json>これにより、各プルシークレットは以下の状態になります。
- オリジナル: 不変
- 追加: 可変
- グローバル: 元のプルシークレットと追加のプルシークレットの両方の最終状態
オプション: 以下のコマンドを入力して、追加されたプルシークレットを削除します。
$ oc delete secret additional-pull-secret -n kube-systemこれにより、ノード全体で自動クリーンアッププロセスが開始されます。