4.4. プルシークレットのダウンロードおよび更新
4.4.1. OpenShift Cluster Manager からのプルシークレットのダウンロード リンクのコピーリンクがクリップボードにコピーされました!
イメージプルシークレットは、OpenShift コンポーネントのコンテナーイメージを提供するサービスおよびレジストリーにアクセスするための認証を提供します。各ユーザーには単一のプルシークレットが生成されます。この同じプルシークレットは、OpenShift Container Platform または OpenShift Dedicated クラスターのインストール時に使用されます。
前提条件
- OpenShift Container Platform または OpenShift Dedicated クラスター
組織管理者またはクラスター所有者の権限:
- 組織管理者 は、お客様の Red Hat アカウントへのアクセスが許可されます。
- クラスター所有者の権限はクラスター内で付与されます。
手順
- クラスターの所有者権限を持つユーザーとしてクラスターにログインします。
- https://cloud.redhat.com/openshift/install/pull-secret からプルシークレットをダウンロードします。
プルシークレットは共有しないでください。プルシークレットはパスワードのように扱う必要があります。
4.4.2. API を使用したプルシークレットのダウンロード リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Cluster Manager API トークンを使用して OpenShift Cluster Manager アカウントに対して認証を行い、OpenShift Container Platform のインストールに必要なプルシークレットのダウンロードを自動化することができます。
これは、OpenShift Container Platform クラスターのインストールを自動化するのに役立ちます。ただし、Red Hat は、OpenShift イメージレジストリーが変更された場合にクラスターのインストール時に毎回プルシークレットをダウンロードすることを推奨します。
- https://cloud.redhat.com/openshift/ の API は、https://api.openshift.com/ にあります。
-
プルシークレットのエンドポイントは
POST /api/accounts_mgmt/v1/access_tokenです。
前提条件
- OpenShift Container Platform クラスター
- クラスターへのクラスターの所有者権限を持つユーザー
-
ocm-cliコマンドラインツールがインストールされている。ご使用の環境での手順については、https://github.com/openshift-online/ocm-cli を参照してください。 - OpenShift Cluster Manager のオフラインアクセストークンが https://cloud.redhat.com/openshift/token にあること。
手順
ocm-cliツールを使用するには、https://cloud.redhat.com/openshift/token にある OpenShift Cluster Manager のオフラインアクセストークンを使用して OpenShift Cluster Manager にログインします。$ ocm login --token=eyJ...これは、提供された OpenShift Cluster Manager トークン (ベアラートークンとしても知られる) を使用して OpenID アクセスを要求し、トークンを
sso.redhat.comに更新します。今後の使用のために、トークンはホームディレクトリーの.ocm.jsonファイルに保存されます。注記詳細およびオプションについては、
ocm login --helpを実行します。OCM (ベアラー) トークンをエクスポートします。
$ export BEARER=$(curl \ --silent \ --data-urlencode "grant_type=refresh_token" \ --data-urlencode "client_id=cloud-services" \ --data-urlencode "refresh_token=${OFFLINE_ACCESS_TOKEN}" \ https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token | \ jq -r .access_token)以下の詳細を指定して、
ocm postコマンドを実行します。$ echo '{}' | ocm post /api/accounts_mgmt/v1/access_token --header --header "Content-Type:application/json" --header "Authorization: Bearer $BEARER" | jq { "auths": { "cloud.openshift.com": { "auth": "<snip>", "email": "<user's email>" }, "quay.io": { "auth": "<snip>", "email": "<user's email>" }, "registry.connect.redhat.com": { "auth": "<snip>", "email": "<user's email>" }, "registry.redhat.io": { "auth": "<snip>", "email": "<user's email>" } } }
これで、トークンはホームディレクトリーの .ocm.json ファイルに保存されます。
4.4.3. グローバルのプルシークレットの更新 リンクのコピーリンクがクリップボードにコピーされました!
クラスターのグローバルプルシークレットを更新できます。
クラスターリソースは新規のプルシークレットに合わせて調整する必要がありますが、これにより、クラスターのユーザビリティーが一時的に制限される可能性があります。
グローバルプルシークレットを更新すると、Machine Config Operator はノードをドレイン (解放) し、その変更を適用し、ノードの遮断を解除します。
OpenShift Container Platform 4.7 の時点で、グローバルプルシークレットへの変更によって再起動がトリガーされなくなりました。
前提条件
- OpenShift Container Platform クラスター
- アップロードする新規または変更されたプルシークレットファイル (OpenShift Cluster Manager の https://cloud.redhat.com/openshift/install/pull-secret からプルシークレットをダウンロードできます)。
- クラスターの所有者権限を持つユーザーとしてクラスターにアクセスします。
手順
- クラスターの所有者権限を持つユーザーとしてクラスターにログインします。
https://cloud.redhat.com/openshift/install/pull-secret からプルシークレットをダウンロードします。
重要プルシークレットは共有しないでください。プルシークレットはパスワードのように扱う必要があります。
以下のコマンドを入力して、ダウンロードしたプルシークレットでクラスターのグローバルプルシークレットを更新します。
oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=pull-secret.txt1 - 1
- 新規プルシークレットファイルへのパスを指定します。
これにより、クラスターのすべてのノードへの更新が始まります。これには、クラスターのサイズに応じて多少時間がかかる場合があります。この間に、ノードがドレイン (解放) され、Pod は残りのノードで再スケジュールされます。