本文档介绍如何将 Apigee Hybrid 配置为使用私有容器映像代码库中的映像。
概览
所有 Apigee Hybrid 运行时映像都托管在 Google Cloud Container Registry (GCR) 中。如果您出于任何原因想要使用私有映像容器代码库,则可以从 GCR 下载映像,将其推送到您的私有代码库,然后替换 overrides.yaml
文件中的默认映像位置。
配置步骤
请按照以下步骤将私有映像容器仓库用于 Apigee Hybrid 映像。如需执行这些步骤并成功使用私有仓库中的映像,您必须熟悉 Apigee Hybrid 安装过程。在典型场景中,您计划在全新 Hybrid 安装过程中配置私有代码库。
- 将 Apigee Hybrid 映像从 GCR 推送到您的私有仓库。我们建议您使用 apigee-push-pull 实用程序完成此步骤。
如果您希望手动执行此步骤,则需要安装 Docker 并使用如下所示的
docker pull
命令。请务必在每个映像名称上附加正确的标记。例如,apigee-synchronizer
的标记是1.10.5
,如下所示。- 使用
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
- 使用
docker pull
命令拉取apigee-system
和apigee
命名空间所需的映像。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
- 拉取并标记映像后,将它们推送到您的私有仓库。请参阅 docker push。
- 使用
- 在
apigee
和apigee-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)"
- 将此 Secret 添加到
overrides.yaml
文件中。Hybrid 安装步骤介绍了创建替换文件的过程。如需了解详情,请参阅配置集群。imagePullSecrets: - name: SECRET_NAME
- 使用存储在您的私有代码库中的映像的映像网址更新
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
,以确保兼容性。