Usa un repositorio de imágenes privado con Apigeectl

En este documento, se explica cómo configurar Apigee Hybrid para usar imágenes de un repositorio de imágenes de contenedor privado.

Descripción general

Todas las imágenes de entorno de ejecución de Apigee Hybrid se alojan en Google Cloud Container Registry (GCR). Si, por algún motivo, deseas usar un repositorio de contenedores de imágenes privadas, puedes descargar las imágenes desde GCR, enviarlas a tu repositorio privado y anular las ubicaciones de imágenes predeterminadas en el archivo overrides.yaml.

Pasos de configuración

Sigue estos pasos a fin de usar un repositorio de contenedores de imágenes privadas para las imágenes Apigee Hybrid. Para seguir estos pasos y usar correctamente las imágenes en tu repositorio privado, debes conocer el procedimiento de instalación de Apigee Hybrid. En una situación típica, planeas configurar el repositorio privado como parte de una instalación híbrida nueva.

  1. Envía las imágenes de Apigee Hybrid desde GCR a tu repositorio privado. Te recomendamos usar la utilidad apigee-push-pull para realizar este paso.

    Si prefieres realizar este paso de forma manual, debes tener Docker instalado y usar el comando docker pull de la siguiente manera. Asegúrate de agregar la etiqueta correcta a cada nombre de imagen. Por ejemplo, la etiqueta para apigee-synchronizer es 1.11.2, como se muestra a continuación.

    1. Obtén una lista actualizada de todas las imágenes de tu proyecto actual con la opción --list de la utilidad apigee-pull-push.sh en el directorio apigeectl/tools/:
      apigee-pull-push.sh --list
    2. Deberías obtener un resultado similar al siguiente:

      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. Extrae las imágenes necesarias para los espacios de nombres apigee-system y apigee con el comando docker pull. Por ejemplo:
      docker pull gcr.io/apigee-release/hybrid/apigee-installer:1.11.2

      En la siguiente lista, se muestran las imágenes necesarias para cada espacio de nombres:

      Espacio de nombres apigee-system

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

      Tu espacio de nombres 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. Después de extraer y etiquetar las imágenes, envíalas a tu repositorio privado. Consulta docker push.
  2. Crea un objeto Secret de Kubernetes en los espacios de nombres apigee y apigee-system.

    Si estos espacios de nombres no existen en el clúster, debes crearlos antes de realizar este paso.

    Si deseas obtener los pasos para crear un objeto Secret, consulta Crea un Secret mediante credenciales en la línea de comandos. Por ejemplo, para crear un Secret en el espacio de nombres apigee-system, haz lo siguiente:

    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)"

    Para crear un Secret en el espacio de nombres apigee, haz lo siguiente:

    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. Agrega el Secret a tu archivo de overrides.yaml: La creación del archivo de anulación se describe en los pasos de instalación híbrida. Consulta Configura el clúster para obtener más detalles.
    imagePullSecrets:
      - name: SECRET_NAME
  4. Actualiza tu archivo overrides.yaml con las URL de imágenes para las imágenes almacenadas en tu repositorio privado. Cada componente que se almacena en el repositorio tiene un elemento image:url. Usa este elemento para especificar la URL de cada imagen de componente. Por ejemplo:
    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

    Sigue este patrón para actualizar cada componente de nivel superior de tu archivo overrides.yaml con su URL de imagen de repositorio privado. Se proporciona un archivo de anulación completo con la instalación híbrida en el directorio $APIGEECTL_HOME/examples/private-overrides.yaml.

Ahora puedes completar una instalación híbrida nueva mediante las imágenes privadas o actualizar la instalación existente. Consulta los pasos de instalación de Apigee Hybrid para obtener más información.

Instala cert-manager desde un repositorio privado

Para instalar cert-manager desde tu repositorio privado, consulta Instala con Helm. Es importante que instales la misma versión de cert-manager como se especifica en las instrucciones de instalación de Apigee Hybrid para garantizar la compatibilidad.