使用私有映像代码库

本文档介绍如何将 Apigee Hybrid 配置为使用私有容器映像代码库中的映像。

概览

所有 Apigee Hybrid 运行时映像都托管在 Google Cloud Container Registry (GCR) 中。如果您出于任何原因想要使用私有映像容器代码库,则可以从 GCR 下载映像,将其推送到您的私有代码库,然后替换 overrides.yaml 文件中的默认映像位置。

配置步骤

请按照以下步骤将私有映像容器仓库用于 Apigee Hybrid 映像。如需执行这些步骤并成功使用私有仓库中的映像,您必须熟悉 Apigee Hybrid 安装过程。在典型场景中,您计划在全新 Hybrid 安装过程中配置私有代码库。

  1. 将 Apigee Hybrid 映像从 GCR 推送到您的私有仓库。我们建议您使用 apigee-push-pull 实用程序完成此步骤。

    如果您希望手动执行此步骤,则需要安装 Docker 并使用如下所示的 docker pull 命令。请务必在每个映像名称上附加正确的标记。例如,apigee-synchronizer 的标记是 1.10.5,如下所示。

    1. 使用 apigeectl/tools/ 目录中 apigee-pull-push.sh 实用程序--list 选项获取当前项目中所有映像的最新列表:
      apigee-pull-push.sh --list

      输出应如下所示:

      apigee:
                gcr.io/apigee-release/hybrid/apigee-mart-server:1.10.5
                gcr.io/apigee-release/hybrid/apigee-synchronizer:1.10.5
                gcr.io/apigee-release/hybrid/apigee-runtime:1.10.5
                gcr.io/apigee-release/hybrid/apigee-hybrid-cassandra-client:1.10.5
                gcr.io/apigee-release/hybrid/apigee-hybrid-cassandra:1.10.5
                gcr.io/apigee-release/hybrid/apigee-cassandra-backup-utility:1.10.5
                gcr.io/apigee-release/hybrid/apigee-udca:1.10.5
                gcr.io/apigee-release/hybrid/apigee-connect-agent:1.10.5
                gcr.io/apigee-release/hybrid/apigee-watcher:1.10.5
                gcr.io/apigee-release/hybrid/apigee-operators:1.10.5
                gcr.io/apigee-release/hybrid/apigee-installer:1.10.5
                gcr.io/apigee-release/hybrid/apigee-redis:1.10.5
                gcr.io/apigee-release/hybrid/apigee-diagnostics-collector:1.10.5
                gcr.io/apigee-release/hybrid/apigee-diagnostics-runner:1.10.5
                gcr.io/apigee-release/hybrid/apigee-mint-task-scheduler:1.10.5
              third party:
                gcr.io/apigee-release/hybrid/apigee-stackdriver-logging-agent:1.10.1
                gcr.io/apigee-release/hybrid/apigee-prom-prometheus:v2.48.0
                gcr.io/apigee-release/hybrid/apigee-stackdriver-prometheus-sidecar:0.9.0
                gcr.io/apigee-release/hybrid/apigee-kube-rbac-proxy:v0.15.0
                gcr.io/apigee-release/hybrid/apigee-envoy:v1.27.0
                gcr.io/apigee-release/hybrid/apigee-prometheus-adapter:v0.11.2
                gcr.io/apigee-release/hybrid/apigee-asm-ingress:1.17.8-asm.4-distroless
                gcr.io/apigee-release/hybrid/apigee-asm-istiod:1.17.8-asm.4-distroless
                gcr.io/apigee-release/hybrid/apigee-fluent-bit:2.2.0
              
    2. 使用 docker pull 命令拉取 apigee-systemapigee 命名空间所需的映像。

      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

      例如:

      docker pull gcr.io/apigee-release/hybrid/apigee-installer:1.10.5
    3. 拉取并标记映像后,将它们推送到您的私有仓库。请参阅 docker push
  2. apigeeapigee-system 命名空间中创建 Kubernetes Secret。

    如果您的集群中不存在这些命名空间,则必须在执行此步骤之前创建它们。

    如需了解创建此 Secret 的步骤,请参阅通过在命令行中提供凭据来创建 Secret。例如,如需在 apigee-system 命名空间中创建 Secret,请运行以下命令:

    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. 将此 Secret 添加到 overrides.yaml 文件中。Hybrid 安装步骤介绍了创建替换文件的过程。如需了解详情,请参阅配置集群
    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 文件中的每个顶级 Hybrid 组件。$APIGEECTL_HOME/examples/private-overrides.yaml 目录中随 Hybrid 安装一起提供了完整的替换文件示例。

您现在可以使用私有映像完成新的 Hybrid 安装,也可以更新现有安装。如需了解详情,请参阅 Apigee Hybrid 安装步骤

从私有代码库安装 cert-manager

如需从您的私有仓库安装 cert-manager,请参阅使用 Helm 进行安装。请务必安装 Apigee Hybrid 安装中指定的同一版本的 cert-manager,以确保兼容性。