Usar um repositório de imagens particular com apigeectl

Neste documento, explicamos como configurar a Apigee híbrida para usar imagens de um repositório de imagens de contêiner particular.

Visão geral

Todas as imagens de ambiente de execução híbrido da Apigee estão hospedadas no Google Cloud Container Registry (GCR). Se por algum motivo você quiser empregar um repositório de contêineres de imagens particulares, é possível fazer o download das imagens do GCR, enviá-las ao seu repositório privado e substituir os locais padrão das imagens no arquivo overrides.yaml.

Etapas de configuração

Siga estas etapas para usar um repositório de contêineres de imagens particular para as imagens híbridas da Apigee. Para realizar estas etapas e usar as imagens no seu repositório particular, você precisa conhecer o procedimento de instalação híbrida da Apigee. Em um cenário típico, você planeja configurar o repositório particular como parte de uma nova instalação híbrida.

  1. Envie as imagens da Apigee híbrida do GCR para seu repositório particular. Recomendamos usar o utilitário apigee-push-pull para essa etapa.

    Se você preferir fazer isso manualmente, precisará ter o Docker instalado e usar o comando docker pull conforme a seguir. Anexe a tag correta a cada nome de imagem. Por exemplo, a tag para apigee-synchronizer é 1.11.2, conforme mostrado abaixo.

    1. Tenha uma lista atualizada de todas as imagens do seu projeto atual com a opção --list do utilitário apigee-pull-push.sh no diretório apigeectl/tools/:
      apigee-pull-push.sh --list
    2. A resposta será semelhante a esta:

      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. Extraia as imagens necessárias para os namespaces apigee-system e apigee com o comando docker pull. Exemplo:
      docker pull gcr.io/apigee-release/hybrid/apigee-installer:1.11.2

      A lista a seguir mostra as imagens necessárias para cada namespace:

      Namespace apigee-system

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

      Seu namespace 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. Depois de extrair e marcar as imagens, envie-as para seu repositório privado. Consulte docker push.
  2. Crie um secret do Kubernetes nos namespaces apigee e apigee-system.

    Se esses namespaces não existirem no cluster, você precisará criá-los antes de executar esta etapa.

    Para ver as etapas de criação do secret, consulte Criar um secret fornecendo credenciais na linha de comandos Por exemplo, para criar um secret no namespace 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 criar um secret no namespace apigee:

    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. Adicione o secret ao seu arquivo overrides.yaml. A criação do arquivo de modificações é descrita nas etapas de instalação híbrida. Consulte Configurar o cluster para mais detalhes.
    imagePullSecrets:
      - name: SECRET_NAME
  4. Atualize seu arquivo overrides.yaml com os URLs das imagens armazenadas no seu repositório particular. Cada componente armazenado no repositório tem um elemento image:url. Use esse elemento para especificar o URL de cada imagem de componente. Exemplo:
    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

    Siga esse padrão para atualizar cada componente híbrido de nível superior no seu arquivo overrides.yaml com o URL da imagem do repositório privado. Um exemplo completo de substituição de arquivo é fornecido com a instalação híbrida no diretório $APIGEECTL_HOME/examples/private-overrides.yaml.

Agora é possível concluir uma nova instalação híbrida usando as imagens privadas ou atualizar a instalação atual. Consulte as etapas de instalação da Apigee híbrida para mais informações.

Como instalar o cert-manager de um repositório particular

Para instalar o cert-manager usando o repositório particular, consulte Como instalar com o Helm. Para garantir a compatibilidade, é importante instalar a mesma versão de cert-manager especificada nas instruções de instalação híbrida da Apigee.