Usar un repositorio de imágenes privado con apigeectl

<0x0Aapigeectl Si usas gráficos de Helm para gestionar Apigee hybrid, consulta Usar un repositorio de imágenes privado con gráficos de Helm.

En este documento se explica cómo configurar Apigee hybrid para que use imágenes de un repositorio de imágenes de contenedor privado.

Información general

Todas las imágenes del tiempo de ejecución híbrido de Apigee se alojan en Google Cloud Container Registry (GCR). Si por algún motivo quieres usar un repositorio de imágenes de contenedor privado, puedes descargar las imágenes de GCR, subirlas a tu repositorio privado y anular las ubicaciones de imágenes predeterminadas en tu archivo overrides.yaml.

Pasos de la configuración

Sigue estos pasos para usar un repositorio de contenedores de imágenes privado para las imágenes de Apigee hybrid. Para llevar a cabo estos pasos y usar correctamente las imágenes de tu repositorio privado, debes conocer el procedimiento de instalación de Apigee hybrid. En un escenario habitual, planificarías la configuración del repositorio privado como parte de una instalación híbrida nueva.

  1. Envía las imágenes de Apigee hybrid de GCR a tu repositorio privado. Te recomendamos que utilices la utilidad apigee-push-pull para completar este paso.

    Si prefieres hacer este paso manualmente, debes tener Docker instalado y usar el comando docker pull de la siguiente manera. Asegúrate de añadir la etiqueta correcta a cada nombre de imagen. Por ejemplo, la etiqueta de 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 del directorio apigeectl/tools/:
      apigee-pull-push.sh --list
    2. La salida debería tener un aspecto similar a este:

      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 de 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, súbelas a tu repositorio privado. Consulta docker push.
  2. Crea un secreto de Kubernetes en los espacios de nombres apigee y apigee-system.

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

    Para ver los pasos para crear el secreto, consulta Crear un secreto proporcionando credenciales en la línea de comandos. Por ejemplo, para crear un secreto en el espacio de nombres 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)"

    Para crear un secreto en el espacio de nombres apigee, sigue estos pasos:

    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. Añade el secreto a tu archivo overrides.yaml. La creación del archivo de anulaciones se describe en los pasos de instalación de hybrid. Para obtener más información, consulta Configurar el clúster.
    imagePullSecrets:
      - name: SECRET_NAME
  4. Actualiza el archivo overrides.yaml con las URLs de las imágenes almacenadas en tu repositorio privado. Cada componente almacenado en el repositorio tiene un elemento image:url. Utiliza este elemento para especificar la URL de cada imagen del 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 híbrido de nivel superior de tu archivo overrides.yaml con la URL de la imagen de su repositorio privado. Se proporciona un archivo de sustituciones de ejemplo completo con la instalación híbrida en el directorio $APIGEECTL_HOME/examples/private-overrides.yaml.

Ahora puedes completar una nueva instalación híbrida con las imágenes privadas o actualizar la que ya tengas. Para obtener más información, consulta los pasos para instalar Apigee Hybrid.

Instalar cert-manager desde un repositorio privado

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