在 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 提取秘密的其他值來更新該提取秘密。
執行下列命令,以擷取在
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
。
將提取秘密新增至叢集
執行下列命令以更新您的提取秘密。
注意
在 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 容器平台文件。