Etapa 6: configurar o cluster

Especificar substituições de configuração

O instalador híbrido da Apigee usa padrões para muitas configurações. No entanto, existem algumas configurações sem padrões. É preciso fornecer valores para essas configurações, conforme explicado a seguir.

Antes de começar

Recomendamos que você analise os cenários a seguir para determinar se quer configurar o cluster para eles. Essas configurações são opcionais.

Configurar o cluster

Por convenção, as substituições de configuração são gravadas em um arquivo chamado overrides.yaml em seu diretório $HYBRID_FILES/overrides.

  1. Crie um novo arquivo chamado overrides.yaml no diretório $HYBRID_FILES/overrides. Exemplo:
    vi $HYBRID_FILES/overrides/overrides.yaml

    O overrides.yaml fornece a configuração para sua instalação híbrida exclusiva da Apigee. O arquivo de substituição nesta etapa fornece uma configuração básica para uma instalação de tempo de execução híbrido de pouco espaço, adequada para sua primeira instalação.

  2. Em overrides.yaml, adicione os valores de propriedade obrigatórios, mostrados abaixo. Veja abaixo uma descrição detalhada de cada propriedade.

    Se você estiver instalando a Apigee híbrida no GKE e for usar a Identidade da carga de trabalho para autenticar componentes híbridos, selecione a guia GKE - Identidade da carga de trabalho a fim de configurar o arquivo overrides.yaml.

    Para todas as outras instalações, selecione a guia para ambientes que não sejam de produção, Non-prod ou de produção, Prod, dependendo da sua escolha na Etapa 4: criar credenciais e contas de serviço.

    Para instalações em ambientes de produção, consulte os requisitos de armazenamento do banco de dados Cassandra em Configurar o Cassandra para produção.

    GKE: Identidade da carga de trabalho

    Verifique se o arquivo overrides.yaml tem a seguinte estrutura e sintaxe: Os valores em red, bold italics são valores de propriedade que você precisa fornecer. Eles estão descritos na tabela abaixo.

    Se você está instalando a Apigee híbrida no GKE, tem uma alternativa para autenticar e fazer solicitações para as APIs do Google, Identidade da carga de trabalho. Para visões gerais da Identidade da carga de trabalho, consulte:

    Para usar a Identidade da carga de trabalho com a Apigee híbrida no GKE, use este modelo e siga as etapas na Etapa 8: instalar o ambiente de execução híbrido para criar as contas de serviço do Kubernetes e associá-las a conta de serviço do Google criadas na Etapa 4: criar contas de serviço e credenciais.

    gcp:
      region: ANALYTICS_REGION
      projectID: GCP_PROJECT_ID
      workloadIdentityEnabled: true
    
    k8sCluster:
      name: CLUSTER_NAME
      region: CLUSTER_LOCATION # Must be the closest Google Cloud region to your cluster.
    org: ORG_NAME
    
    instanceID: "UNIQUE_INSTANCE_IDENTIFIER"
      
    ao:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-operators"
        tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2
    
    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2 
    
    cassandra:
      hostNetwork: false
        # false for all GKE installations.
        # See Multi-region deployment: Prerequisites
      replicaCount: 3
        # Use 1 for demo installations and multiples of 3 for production.
        # See Configure Cassandra for production for guidelines.
      backup:
        enabled: true
        # Set to true for initial installation.
        # This triggers apigeectl to create the apigee-cassandra-backup Kubernetes service account.
        # See Cassandra backup overview for instructions on using cassandra.backup.
    
    virtualhosts:
    - name: ENVIRONMENT_GROUP_NAME
      selector:
        app: apigee-ingressgateway
        ingress_name: INGRESS_NAME
      sslCertPath: ./certs/CERT_NAME.pem
      sslKeyPath: ./certs/KEY_NAME.key
    
    ingressGateways:
    - name: INGRESS_NAME # maximum 17 characters.
      replicaCountMin: 2
      replicaCountMax: 10
      svcAnnotations:  # optional. If you are on AKS, see Known issue #260772383
        SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE
      svcLoadBalancerIP: SVC_LOAD_BALANCER_IP  # optional
    
    envs:
    - name: ENVIRONMENT_NAME
    
    logger:
      enabled: false # Set to false for all GKE installations.
    
    

    Sem produção

    Verifique se o arquivo overrides.yaml tem a seguinte estrutura e sintaxe: Os valores em red, bold italics são valores de propriedade que você precisa fornecer. Eles estão descritos na tabela abaixo.

    Há diferenças entre as diferentes plataformas dependendo da região do projeto do Google Cloud e a região do cluster do Kubernetes. Escolha a plataforma em que você está instalando o Apigee híbrido.

    gcp:
      region: ANALYTICS_REGION
      projectID: GCP_PROJECT_ID
    
    k8sCluster:
      name: CLUSTER_NAME
      region: CLUSTER_LOCATION # Must be the closest Google Cloud region to your cluster.
    org: ORG_NAME
    
    instanceID: "UNIQUE_INSTANCE_IDENTIFIER"
      
    ao:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-operators"
        tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2
    
    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2 
    
    cassandra:
      replicaCount: 1
        # Use 1 for non-prod or "demo" installations and multiples of 3 for production.
        # See Configure Cassandra for production for guidelines.
      hostNetwork: false
        # Set to false for single region installations and multi-region installations
        # with connectivity between pods in different clusters, for example GKE installations.
        # Set to true  for multi-region installations with no communication between
        # pods in different clusters, for example GKE On-prem, GKE on AWS, Anthos on bare metal,
        # AKS, EKS, and OpenShift installations.
        # See Multi-region deployment: Prerequisites
    
    virtualhosts:
    - name: ENVIRONMENT_GROUP_NAME
      selector:
        app: apigee-ingressgateway
        ingress_name: INGRESS_NAME
      sslCertPath: ./certs/CERT_NAME.pem
      sslKeyPath: ./certs/KEY_NAME.key
    
    ingressGateways:
    - name: INGRESS_NAME # maximum 17 characters.
      replicaCountMin: 2
      replicaCountMax: 10
      svcAnnotations:  # optional. If you are on AKS, see Known issue #260772383
        SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE
      svcLoadBalancerIP: SVC_LOAD_BALANCER_IP  # optional
    
    envs:
    - name: ENVIRONMENT_NAME
      serviceAccountPaths:
        synchronizer: NON_PROD_SERVICE_ACCOUNT_FILEPATH
          # For example: "./service-accounts/GCP_PROJECT_ID-apigee-non-prod.json"
        udca: NON_PROD_SERVICE_ACCOUNT_FILEPATH
        runtime: NON_PROD_SERVICE_ACCOUNT_FILEPATH
    
    
    mart:
      serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH
    
    connectAgent:
      serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH
    
    metrics:
      serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH
    
    udca:
      serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH
    
    watcher:
      serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH
    
    logger:
      enabled: false
            # Set to false to disable logger for GKE installations.
            # Set to true for all platforms other than GKE.
            # See apigee-logger in Service accounts and roles used by hybrid components.
      serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH
    
    

    Prod.

    Verifique se o arquivo overrides.yaml tem a seguinte estrutura e sintaxe: Os valores em red, bold italics são valores de propriedade que você precisa fornecer. Eles estão descritos na tabela abaixo.

    Há diferenças entre as diferentes plataformas dependendo da região do projeto do Google Cloud e a região do cluster do Kubernetes. Escolha a plataforma em que você está instalando o Apigee híbrido.

    gcp:
      region: ANALYTICS_REGION
      projectID: GCP_PROJECT_ID
    
    k8sCluster:
      name: CLUSTER_NAME
      region: CLUSTER_LOCATION # Must be the closest Google Cloud region to your cluster.
    org: ORG_NAME
    
    instanceID: "UNIQUE_INSTANCE_IDENTIFIER"
      
    ao:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-operators"
        tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2
    
    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2 
    
    cassandra:
      hostNetwork: false
        # Set to false for single region installations and multi-region installations
        # with connectivity between pods in different clusters, for example GKE installations.
        # Set to true  for multi-region installations with no communication between
        # pods in different clusters, for example GKE On-prem, GKE on AWS, Anthos on bare metal,
        # AKS, EKS, and OpenShift installations.
        # See Multi-region deployment: Prerequisites
      replicaCount: 3
        # Use multiples of 3 for production.
        # See Configure Cassandra for production for guidelines.
      storage:
        capacity: 500Gi
      resources:
        requests:
          cpu: 7
          memory: 15Gi
      maxHeapSize: 8192M
      heapNewSize: 1200M
        # Minimum storage requirements for a production environment.
        # See Configure Cassandra for production.
    
    virtualhosts:
    - name: ENVIRONMENT_GROUP_NAME
      selector:
        app: apigee-ingressgateway
        ingress_name: INGRESS_NAME
      sslCertPath: ./certs/CERT_NAME.pem
      sslKeyPath: ./certs/KEY_NAME.key
    
    ingressGateways:
    - name: INGRESS_NAME # maximum 17 characters.
      replicaCountMin: 2
      replicaCountMax: 10
      svcAnnotations:  # optional. If you are on AKS, see Known issue #260772383
        SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE
    
    envs:
    - name: ENVIRONMENT_NAME
      serviceAccountPaths:
        synchronizer: SYNCHRONIZER_SERVICE_ACCOUNT_FILEPATH
          # For example: "./service-accounts/GCP_PROJECT_ID-apigee-synchronizer.json"
        udca: UDCA_SERVICE_ACCOUNT_FILEPATH
          # For example: "./service-accounts/GCP_PROJECT_ID-apigee-udca.json"
        runtime: RUNTIME_SERVICE_ACCOUNT_FILEPATH
          # For example: "./service-accounts/GCP_PROJECT_ID-apigee-runtime.json"
    
    mart:
      serviceAccountPath: MART_SERVICE_ACCOUNT_FILEPATH
            # For example: "./service-accounts/GCP_PROJECT_ID-apigee-mart.json"
    
    connectAgent:
      serviceAccountPath: MART_SERVICE_ACCOUNT_FILEPATH
            # Use the same service account for mart and connectAgent
    
    metrics:
      serviceAccountPath: METRICS_SERVICE_ACCOUNT_FILEPATH
            # For example: "./service-accounts/GCP_PROJECT_ID-apigee-metrics.json"
    
    udca:
      serviceAccountPath: UDCA_SERVICE_ACCOUNT_FILEPATH
            # For example: "./service-accounts/GCP_PROJECT_ID-apigee-udca.json"
    
    watcher:
      serviceAccountPath: WATCHER_SERVICE_ACCOUNT_FILEPATH
            # For example: "./service-accounts/GCP_PROJECT_ID-apigee-watcher.json"
    
    logger:
      enabled: false
            # Set to false to disable logger for GKE installations.
            # Set to true for all platforms other than GKE.
            # See apigee-logger in Service accounts and roles used by hybrid components.
      serviceAccountPath: LOGGER_SERVICE_ACCOUNT_FILEPATH
            # For example: "./service-accounts/GCP_PROJECT_ID-apigee-logger.json"
    

    Exemplo

    No exemplo a seguir, mostramos um arquivo de modificações concluído com valores de propriedade de exemplo adicionados:

    gcp:
      region: us-central1
      projectID: hybrid-example
    
    k8sCluster:
      name: apigee-hybrid
      region: us-central1
    
    org: hybrid-example
    
    instanceID: "my_hybrid_example"
      
    ao:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-operators"
        tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2
    
    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2 
    
    cassandra:
      hostNetwork: false
      replicaCount: 3
    
    virtualhosts:
    - name: example-env-group
      selector:
        app: apigee-ingressgateway
        ingress_name: my-ingress-1
      sslCertPath: ./certs/keystore.pem
      sslKeyPath: ./certs/keystore.key
    
    ingressGateways:
    - name: my-ingress-1
      replicaCountMin: 2
      replicaCountMax: 10
    
    envs:
    - name: test
      serviceAccountPaths:
        synchronizer: ./service-accounts/my-hybrid-project-apigee-non-prod.json
          # for production environments, my-hybrid-project-apigee-synchronizer.json
        udca: ./service-accounts/my-hybrid-project-apigee-non-prod.json
          # for production environments, my-hybrid-project-apigee-udca.json
        runtime: ./service-accounts/my-hybrid-project-apigee-non-prod.json
          # for production environments, my-hybrid-project-apigee-runtime.json
    
    mart:
      serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json
        # for production environments, my-hybrid-project-apigee-mart.json
    
    connectAgent:
      serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json
        # for production environments, example-hybrid-apigee-mart.json
    
    metrics:
      serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json
        # for production environments, my-hybrid-project-apigee-metrics.json
    
    udca:
      serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json
        # for production environments, my-hybrid-project-apigee-udca.json
    
    watcher:
      serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json
        # for production environments, my-hybrid-project-apigee-watcher.json
    
    logger:
      enabled: false # Set to "false" for GKE. Set to "true" for all other Kubernetes platforms.
      serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json
        # for production environments, LOGGER_SERVICE_ACCOUNT_NAME.json
    
  3. Quando terminar, salve o arquivo.

A tabela a seguir descreve cada um dos valores de propriedade que você precisa fornecer no arquivo de substituição. Para mais informações, consulte Referência da propriedade de configuração.

Variável Descrição
ANALYTICS_REGION No GKE, defina esse valor como a mesma região em que o cluster está em execução. Em todas as outras plataformas, selecione a região de análise mais próxima ao seu cluster que seja compatível com o Analytics. Consulte a tabela na Parte 1, etapa 2: criar uma organização.

Este é o valor atribuído anteriormente à variável de ambiente ANALYTICS_REGION.

GCP_PROJECT_ID Identifica o projeto do Google Cloud em que apigee-logger e apigee-metrics enviam os dados. Esse é o valor atribuído à variável de ambiente PROJECT_ID.
CLUSTER_NAME O nome do cluster do Kubernetes. Esse é o valor atribuído à variável de ambiente CLUSTER_NAME.
CLUSTER_LOCATION A região em que o cluster está em execução. Esta é a região em que você criou o cluster na Etapa 1: criar um cluster.

Este é o valor atribuído anteriormente à variável de ambiente CLUSTER_LOCATION.

ORG_NAME É o ID da sua organização da Apigee híbrida. Esse é o valor atribuído à variável de ambiente ORG_NAME.
UNIQUE_INSTANCE_IDENTIFIER

Uma string exclusiva para identificar a instância. Pode ser qualquer combinação de letras e números, com até 63 caracteres.

É possível criar várias organizações no mesmo cluster, mas o instanceID precisa ser o mesmo para todas as organizações que estiverem no mesmo cluster do Kubernetes.

ENVIRONMENT_GROUP_NAME Nome do grupo a que os ambientes são atribuídos. Este é o grupo que você criou em Configuração do projeto e da organização - Etapa 3: criar um grupo de ambiente. Esse é o valor atribuído à variável de ambiente ENV_GROUP.
CERT_NAME
KEY_NAME
Digite o nome da chave TLS autoassinado e dos arquivos de certificado gerados anteriormente na Etapa 5: criar certificados TLS. Esses arquivos precisam estar localizados no diretório base_directory/hybrid-files/certs. Por exemplo:
sslCertPath: ./certs/keystore.pem
sslKeyPath: ./certs/keystore.key
INGRESS_NAME O nome do gateway de entrada da Apigee para sua implantação. Pode ser qualquer nome que atenda aos seguintes requisitos:
  • máximo de 17 caracteres;
  • conter apenas caracteres alfanuméricos minúsculos, "-" ou ".";
  • começar com um caractere alfanumérico;
  • terminar com um caractere alfanumérico.

ConsulteingressGateways[].name na referência da propriedade de configuração

SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE (Opcional). Esse é um par de chave-valor que fornece anotações para o serviço de entrada padrão. As anotações são usadas pela sua plataforma de nuvem para ajudar a configurar sua instalação híbrida, por exemplo, definindo o tipo de balanceador de carga como interno ou externo.

As anotações variam de acordo com a plataforma. Consulte a documentação da sua plataforma para ver anotações obrigatórias e sugeridas.

Comente ou exclua esta seção se você não a estiver usando.

SVC_LOAD_BALANCER_IP (Opcional). Um endereço IP que você reservou para seu balanceador de carga. Nas plataformas compatíveis com a especificação do endereço IP do balanceador de carga, o balanceador de carga será criado com esse endereço IP. Nas plataformas que não permitem especificar o IP do balanceador de carga, essa propriedade é ignorada.

Comente ou exclua esta seção se você não a estiver usando.

ENVIRONMENT_NAME Use o mesmo nome usado para criar um ambiente na IU, conforme explicado em Configuração de projeto e organização - Etapa 3: criar um grupo de ambiente.
*_SERVICE_ACCOUNT_FILEPATH A conta do caminho e do nome dos arquivos JSON da conta de serviço no diretório service-accounts/. Os nomes precisam incluir o caminho para o arquivo da conta de serviço. Pode ser um caminho completo ou relativo ao seu diretório hybrid-files/. Se você incluir um caminho relativo, chame o apigeectl, o comando para aplicar essa configuração, no diretório hybrid-files/.

Em ambientes de não produção, o nome da conta de serviço única é GCP_PROJECT_ID-non-prod.json por padrão.

Para ambientes de produção, o nome do arquivo de chave da conta de serviço que você gerou com a create-service-account ferramenta na Configuração de ambiente de execução híbrido - Etapa 4: criar contas de serviço e credenciais.

É possível ver a lista de arquivos da conta de serviço no diretório service-accounts/.

Os nomes padrão das contas de serviço do ambiente de produção são:

  • Cassandra: GCP_PROJECT_ID-apigee-cassandra.json
  • Logger: GCP_PROJECT_ID-apigee-logger.json
  • MART: GCP_PROJECT_ID-apigee-mart.json
  • Agente do Connect: GCP_PROJECT_ID-apigee-mart.json
  • Métricas: GCP_PROJECT_ID-apigee-metrics.json
  • Ambiente de execução da Apigee: GCP_PROJECT_ID-
  • Sincronizador: GCP_PROJECT_ID-apigee-synchronizer.json
  • UDCA: GCP_PROJECT_ID-apigee-udca.json
  • Watcher: GCP_PROJECT_ID-apigee-watcher.json

Resumo

O arquivo de configuração informa ao Kubernetes como implantar os componentes híbridos em um cluster. Em seguida, ative o acesso do sincronizador para que os planos de ambiente de execução e gerenciamento da Apigee possam se comunicar.

1 2 3 4 5 6 (PRÓXIMA) Etapa 7: Permita o acesso do sincronizador 8 9 10