Passo 6: configure o tempo de execução híbrido

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 em seguida.

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 é fornecida uma descrição detalhada de cada propriedade:

    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 descritos 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
    
    virtualhosts:
    - name: ENVIRONMENT_GROUP_NAME
      selector:
        app: apigee-ingressgateway
        ingress_name: INGRESS_NAME
      sslCertPath: ./certs/CERT_NAME.pem
      sslKeyPath: ./certs/KEY_NAME.key
    
    ao:
      args:
      # This configuration is introduced in hybrid v1.8
        disableIstioConfigInAPIServer: true
    
    # This configuration is introduced in hybrid v1.8
    ingressGateways:
    - name: INGRESS_NAME # maximum 17 characters.
      replicaCountMin: 2
      replicaCountMax: 10
      # You do not need to set Annotations or LoadBalancerIP if you are creating your own Kubernetes
      # service for ingress deployment. In prod, it's recommended to create your own Kubernetes service.
      # See: Expose Apigee ingress gateway.
      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 descritos na tabela abaixo.

    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.

    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
      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
    
    ao:
      args:
      # This configuration is introduced in hybrid v1.8
        disableIstioConfigInAPIServer: true
    
    # This configuration is introduced in hybrid v1.8
    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

    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
    
    virtualhosts:
    - name: example-env-group
      selector:
        app: apigee-ingressgateway
        ingress_name: my-ingress-1
      sslCertPath: ./certs/keystore.pem
      sslKeyPath: ./certs/keystore.key
    
    ao:
      args:
        disableIstioConfigInAPIServer: true
    
    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.

SVC_LOAD_BALANCER_IP (Opcional). 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.
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 seu 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