在 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 叢集。 請確定您具有叢集的系統管理員存取權。
準備提取密碼
當您建立 ARO 叢集而不新增 Red Hat 提取秘密時,仍會自動在您的叢集上建立提取密碼。 不過,此提取密碼並未完全填入。
本節將逐步解說使用 Red Hat 提取秘密的其他值來更新該提取秘密。
執行下列命令,擷取命名空間中名為
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>" } } }
移至您的 Red Hat OpenShift 叢集管理員入口網站 ,然後選取 [ 下載提取密碼 ]。 您的 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 提取秘密中找到的專案中新增 ,以編輯您從叢集取得的提取秘密檔案。
重要
cloud.openshift.com
包括 Red Hat 提取密碼中的專案,會導致您的叢集開始將遙測資料傳送至 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
。
將提取密碼新增至叢集
執行下列命令來更新提取密碼。
注意
在 ARO 4.9 或更舊版本中,執行此命令會導致叢集節點在更新時逐一重新開機。 在 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 運算子組態檔。 然後,您可以執行下列命令來編輯組態檔:
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 容器儲存體操作員是否可用,並查看您是否具有安裝許可權。
下一步
若要深入瞭解 Red Hat 提取秘密,請參閱 使用映射提取秘密 。
若要深入瞭解 Red Hat OpenShift 4,請參閱 Red Hat OpenShift 容器平臺檔 。