Passo 4: instale o híbrido no GKE

Aplique a configuração ao cluster

Para instalar o Apigee Hybrid no seu cluster:

  1. Certifique-se de que está no diretório hybrid-base-directory/hybrid-files.
  2. Execute o comando init:
    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml

    O comando init instala os serviços de implementação do Apigee o controlador de implementação do Apigee e o webhook de admissão do Apigee, e implementa componentes que não são do Apigee Istio e Cert Manager.

  3. Para verificar o estado da implementação, pode usar os seguintes 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, avance para o passo seguinte.

  4. Faça uma instalação "de teste". Execute o comando apply com a flag --dry-run=true. A execução de um teste permite-lhe verificar se existem erros antes de serem feitas alterações ao cluster.
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true
  5. Se não existirem erros, pode aplicar os componentes de tempo de execução específicos do Apigee ao cluster:
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
  6. Para verificar o estado da implementação:
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml

    Repita este passo até que todos os pods estejam prontos. Os pods podem demorar vários minutos a serem iniciados.

Ative o acesso do sincronizador

  1. Crie uma conta de serviço do GCP e adicione-lhe a função Apigee Organization Admin. Esta conta de serviço vai ser usada para autenticar uma chamada API que vai fazer num passo posterior. Uma forma fácil de criar a conta de serviço é através da consola do GCP. Para ver instruções, consulte o artigo Criar e gerir contas de serviço na documentação da GCP.
  2. Transfira a chave da conta de serviço para o seu sistema. Siga as instruções em Criar chaves de contas de serviço na documentação da GCP.
  3. Mova a chave de conta de serviço transferida para o diretório de contas de serviço: /hybrid-base-directory/hybrid-files/service-accounts.
  4. Execute estes dois comandos para obter um token:
    export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    export TOKEN=$(gcloud auth application-default print-access-token)

    Onde org-admin-service-account-file é o caminho no seu sistema para a chave da conta de serviço que transferiu com a função Administrador da organização Apigee.

  5. Chame a API setSyncAuthorization para ativar as autorizaçõ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"]}'
    

    Onde:

    • your_org_name: o nome da sua organização híbrida.
    • synchronizer-manager-service-account-email: o nome de uma conta de serviço com a função Apigee Synchronizer Manager. O nome tem o formato de um endereço de email. 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 obter 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 ''
    

    O resultado tem um aspeto semelhante ao seguinte:

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

Adicione o IP do MART à sua organização

Tem de adicionar o endereço IP do ponto final MART à sua organização do Apigee. Definiu este valor anteriormente quando definiu o valor da propriedade mart.hostAlias no ficheiro de substituições. O plano de gestão precisa deste endereço para poder comunicar com o plano de execução através do MART.

Siga estes passos para adicionar o IP do MART à sua organização:

  1. Obtenha o valor que definiu anteriormente no ficheiro de substituições para a propriedade mart.hostAlias. Para que o MART funcione, o alias do anfitrião tem de ser um nome de domínio totalmente qualificado.
  2. Localize a chave da conta de serviço com a função Apigee Organization Admin que transferiu anteriormente na secção Ativar acesso do sincronizador.
  3. Execute estes dois comandos para obter um token:
    export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    export TOKEN=$(gcloud auth application-default print-access-token)

    Onde org-admin-service-account-file é o caminho no seu sistema para a chave da conta de serviço que transferiu com a função Administrador da organização Apigee.

  4. Chame a seguinte API de gestão para atualizar a sua organização com o ponto final 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"
        } ]
      }
    }'

    Segue-se um exemplo. Certifique-se de que adiciona 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"
        } ]
      }
    }'

Guarde o ficheiro de substituições

Certifique-se de que guarda o ficheiro de substituições. Precisa deste ficheiro para fazer atualizações futuras, patches ou quaisquer outras modificações à configuração do cluster.