共用方式為


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

Azure Container Registry (ACR) 是受控容器登錄服務,可用來儲存具有企業功能的私人 Docker 容器映像,例如異地複寫。 若要從 ARO 叢集存取 ACR,叢集可以透過將 Docker 登入認證儲存在 Kubernetes 祕密中,以向 ACR 進行驗證。 同樣地,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 使用 password 或 password2。

存取金鑰

相反地,您可以使用 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

下一步