使用 apigeectl 搭配私人映像檔存放區

<0x0Aapigeectl如果您使用 Helm chart 管理 Apigee Hybrid,請參閱「使用 Helm chart 搭配私人映像檔存放區」。

本文說明如何設定 Apigee Hybrid,以使用私人容器映像檔存放區中的映像檔。

總覽

所有 Apigee Hybrid 執行階段映像檔都託管在 Google Cloud Container Registry (GCR)。如果基於任何原因,您想使用私人映像檔容器存放區,可以從 GCR 下載映像檔,然後推送至私人存放區,並在 overrides.yaml 檔案中覆寫預設映像檔位置。

設定步驟

請按照下列步驟,為 Apigee Hybrid 映像檔使用私人映像檔容器存放區。如要執行這些步驟,並在私人存放區中順利使用映像檔,您必須熟悉 Apigee Hybrid 安裝程序。在一般情況下,您會規劃在全新混合式安裝作業中設定私人存放區。

  1. 將 Apigee Hybrid 映像檔從 GCR 推送至私人存放區。建議您使用 apigee-push-pull 公用程式完成這個步驟。

    如要手動執行這個步驟,您必須安裝 Docker,並使用 docker pull 指令,如下所示。請務必在每個圖片名稱後面加上正確的標記。舉例來說,apigee-synchronizer 的標記是 1.11.2,如下所示。

    1. 使用 apigeectl/tools/ 目錄中 apigee-pull-push.sh 公用程式的 --list 選項,取得目前專案中所有映像檔的最新清單:
      apigee-pull-push.sh --list
    2. 輸出內容應如下所示:

      apigee:
              gcr.io/apigee-release/hybrid/apigee-mart-server:1.11.2
              gcr.io/apigee-release/hybrid/apigee-synchronizer:1.11.2
              gcr.io/apigee-release/hybrid/apigee-runtime:1.11.2
              gcr.io/apigee-release/hybrid/apigee-hybrid-cassandra-client:1.11.2
              gcr.io/apigee-release/hybrid/apigee-hybrid-cassandra:1.11.2
              gcr.io/apigee-release/hybrid/apigee-cassandra-backup-utility:1.11.2
              gcr.io/apigee-release/hybrid/apigee-udca:1.11.2
              gcr.io/apigee-release/hybrid/apigee-connect-agent:1.11.2
              gcr.io/apigee-release/hybrid/apigee-watcher:1.11.2
              gcr.io/apigee-release/hybrid/apigee-operators:1.11.2
              gcr.io/apigee-release/hybrid/apigee-installer:1.11.2
              gcr.io/apigee-release/hybrid/apigee-redis:1.11.2
              gcr.io/apigee-release/hybrid/apigee-diagnostics-collector:1.11.2
              gcr.io/apigee-release/hybrid/apigee-diagnostics-runner:1.11.2
              gcr.io/apigee-release/hybrid/apigee-mint-task-scheduler:1.11.2
      third party:
              gcr.io/apigee-release/hybrid/apigee-stackdriver-logging-agent:1.10.5
              gcr.io/apigee-release/hybrid/apigee-prom-prometheus:v2.52.0
              gcr.io/apigee-release/hybrid/apigee-stackdriver-prometheus-sidecar:0.9.0
              gcr.io/apigee-release/hybrid/apigee-kube-rbac-proxy:v0.18.0
              gcr.io/apigee-release/hybrid/apigee-envoy:v1.27.0
              gcr.io/apigee-release/hybrid/apigee-prometheus-adapter:v0.12.0
              gcr.io/apigee-release/hybrid/apigee-asm-ingress:1.18.7-asm.26-distroless
              gcr.io/apigee-release/hybrid/apigee-asm-istiod:1.18.7-asm.26-distroless
              gcr.io/apigee-release/hybrid/apigee-fluent-bit:3.0.3
      
    3. 使用 docker pull 指令,提取 apigee-systemapigee 命名空間所需的映像檔。例如:
      docker pull gcr.io/apigee-release/hybrid/apigee-installer:1.11.2

      下表列出各命名空間所需的圖片:

      apigee-system 命名空間

      • apigee-installer
      • apigee-kube-rbac-proxy
      • apigee-operators

      您的 apigee 命名空間

      • apigee-asm-ingress
      • apigee-asm-istiod
      • apigee-cassandra-backup-utility
      • apigee-connect-agent
      • apigee-diagnostics-collector
      • apigee-diagnostics-runner
      • apigee-envoy
      • apigee-fluent-bit
      • apigee-hybrid-cassandra-client
      • apigee-hybrid-cassandra
      • apigee-mart-server
      • apigee-prom-prometheus
      • apigee-prometheus-adapter
      • apigee-redis
      • apigee-runtime
      • apigee-stackdriver-logging-agent
      • apigee-stackdriver-prometheus-sidecar
      • apigee-synchronizer
      • apigee-udca
      • apigee-watcher
    4. 提取並標記映像檔後,將其推送至私人存放區。請參閱「docker push」。
  2. apigeeapigee-system 命名空間中建立 Kubernetes Secret。

    如果叢集中沒有這些命名空間,您必須先建立命名空間,才能執行這個步驟。

    如需建立 Secret 的步驟,請參閱透過指令列提供憑證來建立 Secret。 舉例來說,如要在 apigee-system 命名空間中建立密鑰:

    kubectl create secret docker-registry SECRET_NAME -n apigee-system \
      --docker-server=YOUR_REGISTRY_SERVER \
      --docker-username=YOUR_DOCKER_USERNAME \
      --docker-email=YOUR_DOCKER_EMAIL \
      --docker-password="YOUR_DOCKER_PASSWORD)"

    如要在 apigee 命名空間中建立 Secret:

    kubectl create secret docker-registry SECRET_NAME -n apigee \
      --docker-server=YOUR_REGISTRY_SERVER \
      --docker-username=YOUR_DOCKER_USERNAME \
      --docker-email=YOUR_DOCKER_EMAIL \
      --docker-password="YOUR_DOCKER_PASSWORD)"
  3. 將密鑰新增至 overrides.yaml 檔案。混合式安裝步驟說明如何建立覆寫檔案。詳情請參閱「設定叢集」。
    imagePullSecrets:
      - name: SECRET_NAME
  4. 使用儲存在私人存放區中的圖片網址,更新 overrides.yaml 檔案。儲存在存放區中的每個元件都有 image:url 元素。使用這個元素指定每個元件圖片的網址。例如:
    mart:
      serviceAccountPath: /installdir/hybrid-files/service-accounts/hybrid-apigee-non-prod.json
      image:
        url: my-docker.pkg.dev/hybrid-1/registry-name/apigee-mart-server

    按照這個模式,使用私有存放區圖片網址更新 overrides.yaml 檔案中的每個頂層混合元件。混合式安裝作業會在 $APIGEECTL_HOME/examples/private-overrides.yaml 目錄中提供完整的範例覆寫檔案。

您現在可以使用私有映像檔完成新的混合式安裝作業,或更新現有的安裝作業。詳情請參閱 Apigee hybrid 安裝步驟

從私人存放區安裝 cert-manager

如要從私有存放區安裝 cert-manager,請參閱「使用 Helm 安裝」。請務必安裝 cert-manager,版本須與 Apigee Hybrid 安裝說明中指定的版本相同,確保相容性。