在 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 提取秘密的其他值來更新該提取秘密。

  1. 執行下列命令,擷取命名空間中名為 pull-secretopenshift-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>"
            }
        }
    }
    
  2. 移至您的 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"
            }
        }
    }
    
  3. 在 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>"
            }
        }
    }
    
  4. 請確定檔案是有效的 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 容器平臺檔