Utiliser un dépôt d'images privé avec apigeectl

Ce document explique comment configurer Apigee hybrid pour utiliser des images à partir d'un dépôt d'images de conteneurs privé.

Présentation

Toutes les images d'exécution Apigee hybrid sont hébergées dans Google Cloud Container Registry (GCR). Si, pour une raison quelconque, vous souhaitez utiliser un dépôt de conteneurs d'images privé, vous pouvez télécharger les images à partir de GCR, les transférer vers votre dépôt privé, et remplacer les emplacements d'images par défaut dans votre fichier overrides.yaml.

Étapes de configuration

Suivez ces étapes pour utiliser un dépôt de conteneurs d'images privé pour les images Apigee hybrid. Pour réaliser ces étapes et utiliser correctement les images de votre dépôt privé, vous devez connaître la procédure d'installation d'Apigee hybrid. Dans un scénario classique, vous prévoyez de configurer le dépôt privé dans le cadre d'une nouvelle installation hybride.

  1. Transférez les images Apigee hybrid de GCR vers votre dépôt privé. Nous vous recommandons d'utiliser l'utilitaire apigee-push-pull pour effectuer cette étape.

    Si vous préférez effectuer cette étape manuellement, vous devez avoir installé Docker et utiliser la commande docker pull comme suit. Veillez à ajouter le tag approprié à chaque nom d'image. Par exemple, le tag pour apigee-synchronizer est 1.11.1, comme indiqué ci-dessous.

    1. Obtenez la liste à jour de toutes les images de votre projet en cours avec l'option --list de l'utilitaire apigee-pull-push.sh dans le répertoire apigeectl/tools/ :
      apigee-pull-push.sh --list
    2. Le résultat doit se présenter sous la forme suivante :

      apigee:
              gcr.io/apigee-release/hybrid/apigee-mart-server:1.11.1
              gcr.io/apigee-release/hybrid/apigee-synchronizer:1.11.1
              gcr.io/apigee-release/hybrid/apigee-runtime:1.11.1
              gcr.io/apigee-release/hybrid/apigee-hybrid-cassandra-client:1.11.1
              gcr.io/apigee-release/hybrid/apigee-hybrid-cassandra:1.11.1
              gcr.io/apigee-release/hybrid/apigee-cassandra-backup-utility:1.11.1
              gcr.io/apigee-release/hybrid/apigee-udca:1.11.1
              gcr.io/apigee-release/hybrid/apigee-connect-agent:1.11.1
              gcr.io/apigee-release/hybrid/apigee-watcher:1.11.1
              gcr.io/apigee-release/hybrid/apigee-operators:1.11.1
              gcr.io/apigee-release/hybrid/apigee-installer:1.11.1
              gcr.io/apigee-release/hybrid/apigee-redis:1.11.1
              gcr.io/apigee-release/hybrid/apigee-diagnostics-collector:1.11.1
              gcr.io/apigee-release/hybrid/apigee-diagnostics-runner:1.11.1
              gcr.io/apigee-release/hybrid/apigee-mint-task-scheduler:1.11.1
      third party:
              gcr.io/apigee-release/hybrid/apigee-stackdriver-logging-agent:1.10.1
              cr.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
    3. Extrayez les images nécessaires pour les espaces de noms apigee-system et apigee à l'aide de la commande docker pull. Exemple :
      docker pull gcr.io/apigee-release/hybrid/apigee-installer:1.11.1

      La liste suivante répertorie les images nécessaires pour chaque espace de noms :

      Espace de noms apigee-system

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

      Votre espace de noms 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. Après avoir extrait et tagué les images, transférez-les vers votre dépôt privé. Consultez la section docker push.
  2. Créez un secret Kubernetes dans les espaces de noms apigee et apigee-system.

    Si ces espaces de noms n'existent pas dans votre cluster, vous devez les créer avant d'effectuer cette étape.

    Pour connaître la procédure à suivre pour créer un secret, consultez la page Créer un secret en fournissant des identifiants sur la ligne de commande. Par exemple, pour créer un secret dans l'espace de noms apigee-system, procédez comme suit :

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

    Pour créer un secret dans l'espace de noms apigee, procédez comme suit :

    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. Ajoutez le secret à votre fichier overrides.yaml. La création du fichier de remplacement est décrite dans les étapes d'installation hybride. Pour en savoir plus, consultez la section Configurer le cluster.
    imagePullSecrets:
      - name: SECRET_NAME
  4. Mettez à jour votre fichier overrides.yaml avec les URL des images stockées dans votre dépôt privé. Chaque composant stocké dans le dépôt possède un élément image:url. Utilisez cet élément pour spécifier l'URL de chaque image de composant. Exemple :
    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

    Suivez ce modèle pour mettre à jour chaque composant hybride de premier niveau dans votre fichier overrides.yaml avec son URL d'image de dépôt privé. Un exemple complet de fichier de remplacement est fourni avec votre installation hybride dans le répertoire $APIGEECTL_HOME/examples/private-overrides.yaml.

Vous pouvez désormais procéder à une nouvelle installation hybride à l'aide des images privées ou mettre à jour votre installation existante. Pour en savoir plus, consultez la procédure d'installation d'Apigee hybrid.

Installer cert-manager à partir d'un dépôt privé

Pour installer cert-manager à partir de votre dépôt privé, consultez la section Installer avec Helm. Il est important d'installer la même version de cert-manager que celle spécifiée dans les instructions d'installation d'Apigee hybrid pour garantir la compatibilité.