Share via


搭配 Azure Red Hat OpenShift 使用 Azure Container Registry (ARO)

Azure Container Registry (ACR) 是受控容器登錄服務,可用來儲存具有企業功能的私人 Docker 容器映射,例如異地複寫。 若要從 ARO 叢集存取 ACR,叢集可以使用 ACR 驗證,方法是將 Docker 登入認證儲存在 Kubernetes 秘密中。 同樣地,ARO 叢集可以在提取映射時,使用 Pod 規格中的 imagePullSecret 來向登錄進行驗證。 在本文中,您將瞭解如何使用 Azure Red Hat OpenShift 叢集來設定 Azure Container Registry,以儲存和提取私人 Docker 容器映射。

必要條件

本指南假設您有現有的 Azure Container Registry。 如果沒有,請使用 Azure 入口網站 或 Azure CLI 指示 來建立容器登錄。

本文也假設您有現有的 Azure Red Hat OpenShift 叢集,並已安裝 oc CLI。 如果沒有,請遵循建立 ARO 叢集教學 課程中的 指示。

取得提取秘密

您需要 ACR 的提取密碼,才能從 ARO 叢集存取登錄。

若要取得提取密碼認證,您可以使用 Azure 入口網站 或 Azure CLI。

如果使用Azure 入口網站,請流覽至您的 ACR 實例,然後選取 [ 存取金鑰 ]。 您 docker-username 是容器登錄的名稱,請針對 docker-password 使用密碼或 password2。

Access Keys

相反地,您可以使用 Azure CLI 來取得這些認證:

az acr credential show -n <your registry name>

建立 Kubernetes 秘密

現在,我們將使用這些認證來建立 Kubernetes 秘密。 使用您的 ACR 認證執行下列命令:

oc create secret docker-registry \
    --docker-server=<your registry name>.azurecr.io \
    --docker-username=<your registry name> \
    --docker-password=******** \
    --docker-email=unused \
    acr-secret

注意

此秘密會儲存在目前的 OpenShift 專案 (Kubernetes 命名空間)中,而且只能由在該專案中建立的 Pod 參考。 如需建立叢集範圍提取秘密的進一步指示,請參閱本

接下來,將秘密連結至 Pod 將使用的服務帳戶,讓 Pod 可以連線到容器登錄。 服務帳戶的名稱應該符合 Pod 所使用的服務帳戶名稱。 default 是預設服務帳戶:

oc secrets link default <pull_secret_name> --for=pull

使用私人登錄映射建立 Pod

既然我們已將 ARO 叢集連線至 ACR,讓我們從 ACR 提取映射以建立 Pod。

從 podSpec 開始,並指定您建立為 imagePullSecret 的秘密:

apiVersion: v1
kind: Pod
metadata:
  name: hello-world
spec:
  containers:
  - name: hello-world
    image: <your registry name>.azurecr.io/hello-world:v1
  imagePullSecrets:
  - name: acr-secret

若要測試 Pod 是否已啟動並執行,請執行此命令,並等到狀態為 [正在執行 ] 為止:

$ oc get pods --watch
NAME         READY   STATUS    RESTARTS   AGE
hello-world  1/1     Running   0          30s

下一步