Etapa 4: instalar a Apigee híbrida no GKE On-Prem

Aplicar a configuração ao cluster

Para instalar a Apigee híbrida no cluster:

  1. Verifique se você está no diretório hybrid-base-directory/hybrid-files.
  2. Verifique se kubectl está definido com o contexto correto. O contexto atual precisa ser definido como o cluster em que você está implantando:
    kubectl config get-contexts
  3. Execute o comando init:
    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml

    O comando init instala os serviços de implantação da Apigee, o controlador de implantação da Apigee e o webhook de admissão da Apigee, além de implantar componentes que não são da Apigee, como Istio e Cert Manager.

  4. Para verificar o status da implantação, use estes comandos:
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml

    e

    kubectl get pods -n apigee-system

    e

    kubectl get pods -n istio-system

    Quando os pods estiverem prontos, vá para a próxima etapa.

  5. Faça uma instalação de "simulação". Execute o comando apply com a sinalização --dry-run=true. Uma simulação permite verificar se há erros antes da alteração no cluster.
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true
  6. Se não houver erros, aplique os componentes de ambiente de execução específicos da Apigee ao cluster:
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
  7. Para verificar o status da implantação:
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml

    Repita essa etapa até que os pods estejam prontos. A inicialização dos pods pode levar vários minutos.

Adicionar um nome do host estático para o Cassandra a /etc/hosts (somente Anthos 1.2.x)

Nesta etapa, você receberá o IP e o nome do host dos nós de trabalho atribuídos ao Cassandra e os adicionará ao arquivo /etc/hosts. Ao usar a rede do host, o pod usa o nome do host e o IP do nó. O nome do host do nó não está no DNS, portanto, você precisa adicionar uma entrada de nome de host estático a /etc/hosts para cada nó de trabalho do Cassandra.

  1. Execute este comando para receber os nós de trabalho do Cassandra. O parâmetro apigee-data é o rótulo de nó padrão ao qual o Cassandra é atribuído. Se você usou um rótulo de nó diferente, substitua o que você usou. Consulte Como rotular os nós de trabalho.
    kubectl  get nodes -l apigee.com/apigee-nodepool=apigee-data -o wide

    Exemplo de saída:

    kubectl get nodes -o wide my-cluster1-844788cc8c-2gx7d
    
    NAME                           STATUS   ROLES    AGE   VERSION          INTERNAL-IP    EXTERNAL-IP    OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
    my-cluster1-844788cc8c-2gx7d   Ready    none     19d   v1.14.7-gke.24   21.0.129.248   21.0.129.248   Ubuntu 18.04.3 LTS   4.15.0-62-generic   docker://17.3.2
  2. Adicione os nomes dos nós e os IPs externos retornados pelo comando anterior para cada nó de trabalho do Cassandra ao arquivo /etc/hosts:
    cat /etc/hosts
    
    127.0.0.1 localhost
    21.0.129.248   my-cluster1-844788cc8c-2gx7d
    

Ativar acesso do sincronizador

  1. Crie uma conta de serviço do GCP e adicione o papel Administrador da organização Apigee a ela. Essa conta de serviço será usada para autenticar uma chamada de API que você fará em uma etapa posterior. Uma maneira fácil de criar a conta de serviço é por meio do console do GCP. Para instruções, consulte Como criar e gerenciar contas de serviço na documentação do GCP.
  2. Faça o download da chave de conta de serviço no seu sistema. Siga as instruções em Como criar chaves de conta de serviço na documentação do GCP.
  3. Mova a chave da conta de serviço salva para o diretório de contas de serviço: /hybrid-base-directory/hybrid-files/service-accounts.
  4. Execute estes dois comandos para receber um token:
    export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    export TOKEN=$(gcloud auth application-default print-access-token)

    Em que org-admin-service-account-file é o caminho no seu sistema para a chave da conta de serviço que você salvou com o papel Administrador da organização da Apigee.

  5. Chame a API setSyncAuthorization para ativar as permissões necessárias para o Sincronizador:
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/your_org_name:setSyncAuthorization" \
       -d '{"identities":["serviceAccount:synchronizer-manager-service-account-email"]}'
    

    Em que:

    • your_org_name: o nome da organização híbrida.
    • synchronizer-manager-service-account-email: o nome de uma conta de serviço com o papel Gerenciador de Synchronizer da Apigee. O nome tem o formato de endereço de e-mail. Por exemplo: apigee-synchronizer@my-project.iam.gserviceaccount.com

    Exemplo:

    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/my_org:setSyncAuthorization" \
       -d '{"identities":["serviceAccount:apigee-synchronizer@my-project.iam.gserviceaccount.com"]}'
    
  6. Para verificar se a conta de serviço foi definida, chame a seguinte API para receber uma lista de contas de serviço:
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/your_org_name:getSyncAuthorization" \
       -d ''
    

    A resposta será semelhante a:

    {
       "identities":[
          "serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com"
       ],
       "etag":"BwWJgyS8I4w="
    }
        

Adicionar o IP do MART à sua organização

Adicione o endereço IP do endpoint MART à sua organização da Apigee. Você definiu esse valor anteriormente ao definir o valor da propriedade mart.hostAlias no arquivo de modificações. O plano de gerenciamento precisa desse endereço para que ele possa se comunicar com o plano do ambiente de execução pelo MART.

Siga estas etapas para adicionar o IP do MART à sua organização:

  1. Insira o valor definido anteriormente no arquivo de modificações para a propriedade mart.hostAlias. Para que o MART funcione, o alias de host precisa ser um nome de domínio totalmente qualificado.
  2. Localize a chave da conta de serviço com o papel de Administrador da organização Apigee que você baixou anteriormente, na seção Ativar acesso do Synchonizer.
  3. Execute estes dois comandos para receber um token:
    export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    export TOKEN=$(gcloud auth application-default print-access-token)

    Em que org-admin-service-account-file é o caminho no sistema para a chave da conta de serviço que você salvou com o papel Administrador da organização Apigee.

  4. Chame a seguinte API de gerenciamento para atualizar sua organização com o endpoint MART:
    curl -v -X PUT \
       https://apigee.googleapis.com/v1/organizations/your_org_name \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $TOKEN" \
      -d '{
      "name" : "your_org_name",
      "properties" : {
        "property" : [ {
          "name" : "features.hybrid.enabled",
          "value" : "true"
        }, {
          "name" : "features.mart.server.endpoint",
          "value" : "https://HOST_ALIAS_DNS"
        } ]
      }
    }'

    Veja um exemplo. Adicione o prefixo "https://" ao nome do domínio.

    curl -v -X PUT \
       https://apigee.googleapis.com/v1/organizations/my_organization \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $TOKEN" \
      -d '{
      "name" : "my_organization",
      "properties" : {
        "property" : [ {
          "name" : "features.hybrid.enabled",
          "value" : "true"
        }, {
          "name" : "features.mart.server.endpoint",
          "value" : "https://foo-mart.example.com"
        } ]
      }
    }'

Salvar o arquivo de modificações

Salve seu arquivo de modificações. Esse arquivo será necessário para realizar upgrades, patches ou quaisquer outras modificações na configuração do cluster no futuro.