Passo 6: configure o cluster

Especifique substituições de configuração

O instalador híbrido do Apigee usa predefinições para muitas definições. No entanto, existem algumas definições que não têm predefinições. Tem de fornecer valores para estas definições, conforme explicado a seguir.

Antes de começar

Recomendamos que reveja os seguintes cenários para determinar se quer configurar o seu cluster para eles. Estas configurações são opcionais.

Configure o cluster

Por convenção, as substituições de configuração são escritas num ficheiro denominado overrides.yaml no diretório $HYBRID_FILES/overrides.

  1. Crie um novo ficheiro denominado overrides.yaml no diretório $HYBRID_FILES/overrides. Por exemplo:
    vi $HYBRID_FILES/overrides/overrides.yaml

    O overrides.yaml fornece a configuração para a sua instalação híbrida do Apigee exclusiva. O ficheiro de substituições neste passo oferece uma configuração básica para uma instalação de tempo de execução híbrida de pequena dimensão, adequada para a sua primeira instalação.

  2. Em overrides.yaml, adicione os valores das propriedades obrigatórias, apresentados abaixo. Abaixo, também encontra uma descrição detalhada de cada propriedade.

    Se estiver a instalar o Apigee hybrid no GKE e tiver ativado o Workload Identity nos seus node pools no Passo 1: crie um cluster, selecione o separador GKE – Workload Identity para configurar o ficheiro overrides.yaml de modo a usar o Workload Identity.

    Para todas as outras instalações, selecione o separador para ambientes de não produção, Non-prod, ou de produção, Prod, consoante a sua escolha no Passo 4: crie contas de serviço e credenciais.

    Para instalações em ambientes de produção, consulte os requisitos de armazenamento da base de dados Cassandra em Configure o Cassandra para produção.

    GKE – Workload Identity

    Certifique-se de que o ficheiro overrides.yaml tem a seguinte estrutura e sintaxe. Os valores em red, bold italics são valores de propriedades que tem de fornecer. Estão descritas na tabela abaixo.

    Se estiver a instalar o Apigee Hybrid no GKE, tem uma alternativa para autenticar e fazer pedidos às APIs Google, o Workload Identity. Para ver descrições gerais do Workload Identity, consulte:

    Para usar a identidade de carga de trabalho com o Apigee hybrid no GKE, use este modelo e, em seguida, siga os passos no Passo 8: instale o tempo de execução híbrido para criar as contas de serviço do Kubernetes e associá-las às contas de serviço Google que criou no Passo 4: crie 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"
    
    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.
    
    

    Não prod

    Certifique-se de que o ficheiro overrides.yaml tem a seguinte estrutura e sintaxe. Os valores em red, bold italics são valores de propriedades que tem de fornecer. Estão descritas na tabela abaixo.

    Existem diferenças entre as diferentes plataformas para a região do projeto do Google Cloud e a região do cluster do Kubernetes. Escolha a plataforma onde está a instalar o Apigee Hybrid.

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

    Certifique-se de que o ficheiro overrides.yaml tem a seguinte estrutura e sintaxe. Os valores em red, bold italics são valores de propriedades que tem de fornecer. Estão descritas na tabela abaixo.

    Existem diferenças entre as diferentes plataformas para a região do projeto do Google Cloud e a região do cluster do Kubernetes. Escolha a plataforma onde está a instalar o Apigee Hybrid.

    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"
    
    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. See Known issue 243167389.
      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

    O exemplo seguinte mostra um ficheiro de substituições concluído com valores de propriedades de exemplo adicionados:

    gcp:
      region: us-central1
      projectID: hybrid-example
    
    k8sCluster:
      name: apigee-hybrid
      region: us-central1
    
    org: hybrid-example
    
    instanceID: "my_hybrid_example"
    
    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, guarde o ficheiro.

A tabela seguinte descreve cada um dos valores das propriedades que tem de indicar no ficheiro de substituições. Para mais informações, consulte a referência da propriedade de configuração.

Variável Descrição
ANALYTICS_REGION No GKE, tem de definir este valor para a mesma região onde o cluster está a ser executado. Em todas as outras plataformas, selecione a região de estatísticas mais próxima do seu cluster que tenha suporte do Analytics (consulte a tabela na Parte 1, Passo 2: crie uma organização).

Este é o valor que atribuiu anteriormente à variável de ambiente ANALYTICS_REGION.

GCP_PROJECT_ID Identifica o projeto do Google Cloud onde o apigee-logger e o apigee-metrics enviam os respetivos dados. Este é o valor atribuído à variável de ambiente PROJECT_ID.
CLUSTER_NAME O nome do cluster do Kubernetes. Este é o valor atribuído à variável de ambiente CLUSTER_NAME.
CLUSTER_LOCATION A região onde o cluster está a ser executado. Esta é a região onde criou o cluster no Passo 1: crie um cluster.

Este é o valor que atribuiu anteriormente à variável de ambiente CLUSTER_LOCATION.

ORG_NAME O ID da sua organização do Apigee Hybrid. Este é o valor atribuído à variável de ambiente ORG_NAME.
UNIQUE_INSTANCE_IDENTIFIER

Uma string exclusiva para identificar esta instância. Pode ser qualquer combinação de letras e números com um máximo de 63 carateres.

Pode criar várias organizações no mesmo cluster, mas o instanceID tem de ser o mesmo para todas as organizações no mesmo cluster do Kubernetes.

ENVIRONMENT_GROUP_NAME O nome do grupo de ambientes ao qual os seus ambientes estão atribuídos. Este é o grupo que criou em Configuração do projeto e da organização – Passo 3: crie um grupo de ambientes. Este é o valor atribuído à variável de ambiente ENV_GROUP.
CERT_NAME
KEY_NAME
Introduza o nome dos ficheiros de certificado e chave TLS autoassinados que gerou anteriormente no Passo 5: crie certificados TLS. Estes ficheiros têm de estar localizados no diretório base_directory/hybrid-files/certs. Por exemplo:
sslCertPath: ./certs/keystore.pem
sslKeyPath: ./certs/keystore.key
INGRESS_NAME O nome da gateway de entrada do Apigee para a sua implementação. Pode ser qualquer nome que cumpra os seguintes requisitos:
  • Ter um comprimento máximo de 17 carateres
  • Contêm apenas carateres alfanuméricos minúsculos, "-" ou "."
  • Começar com um caráter alfanumérico
  • Terminar com um caráter alfanumérico

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

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

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

Comente ou elimine esta secção se não a estiver a usar.

SVC_LOAD_BALANCER_IP (Opcional). Um endereço IP que reservou para o seu equilibrador de carga. Em plataformas que suportam a especificação do endereço IP do balanceador de carga, o balanceador de carga é criado com este endereço IP. Nas plataformas que não lhe permitem especificar o IP do equilibrador de carga, esta propriedade é ignorada.

Comente ou elimine esta secção se não a estiver a usar.

ENVIRONMENT_NAME Use o mesmo nome que usou quando criou um ambiente na IU, conforme explicado em Configuração do projeto e da organização – Passo 3: crie um grupo de ambientes.
*_SERVICE_ACCOUNT_FILEPATH O caminho e o nome de ficheiro da conta dos ficheiros JSON da conta de serviço no diretório service-accounts/. Os nomes têm de incluir o caminho para o ficheiro da conta de serviço. Pode ser um caminho completo ou o caminho relativo ao seu diretório hybrid-files/. Se incluir um caminho relativo, tem de chamar apigeectl, o comando para aplicar esta configuração, a partir do diretório hybrid-files/.

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

Para ambientes de produção, o nome do ficheiro de chave da conta de serviço que gerou com a ferramenta create-service-account em Configuração do tempo de execução híbrido – Passo 4: crie contas de serviço e credenciais.

Pode ver a lista de ficheiros de contas de serviço no diretório service-accounts/.

Os nomes predefinidos 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
  • Ligar a um agente: GCP_PROJECT_ID-apigee-mart.json
  • Métricas: GCP_PROJECT_ID-apigee-metrics.json
  • Tempo de execução do Apigee: GCP_PROJECT_ID-
  • Sincronizador: GCP_PROJECT_ID-apigee-synchronizer.json
  • UDCA: GCP_PROJECT_ID-apigee-udca.json
  • Observador: GCP_PROJECT_ID-apigee-watcher.json

Resumo

O ficheiro de configuração indica ao Kubernetes como implementar os componentes híbridos num cluster. Em seguida, vai ativar o acesso do sincronizador para que os planos de gestão e de tempo de execução do Apigee possam comunicar.

1 2 3 4 5 6 (NEXT) Passo 7: ative o acesso do sincronizador 8 9 10