Etapa 5: instalar o ambiente de execução híbrido

Ativar acesso do sincronizador

Para ativar o acesso do sincronizador:

  1. Crie uma conta de serviço do Google Cloud e adicione o papel Administrador da organização da 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.

    Por exemplo, os comandos gcloud a seguir criarão a conta de serviço e atribuirão o Administrador da organização do Apigee a ela:

    1. Crie a conta:
      gcloud iam service-accounts create apigee-org-admin \
          --display-name="apigee-org-admin"

      Em que apigee-org-admin é o nome da conta de serviço que você está criando. "apigee-org-admin" é recomendado para este tutorial.

    2. Atribua o papel Administrador da organização da Apigee à conta de serviço:
      gcloud projects add-iam-policy-binding $PROJECT_ID \
          --member="serviceAccount:apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/apigee.admin"

      Em que:

      • $PROJECT_ID é o nome do projeto do Google Cloud que você criou na Etapa 2: criar um projeto do Google Cloud.
      • apigee-org-admin é o nome da conta de serviço que você acabou de criar.
      • roles/apigee.admin é o papel de roles/apigee.admin.
  2. Faça o download da chave de conta de serviço no seu sistema. Use o seguinte comando para fazer o download da chave no seu diretório service-accounts/. Para mais informações, consulte as instruções em Como criar chaves de conta de serviço na documentação do GCP.
    1. Verifique se você está no diretório /hybrid-base-directory/hybrid-files/.
    2. Faça o download da chave:
      gcloud iam service-accounts keys create ./service-accounts/$PROJECT_ID-apigee-org-admin.json \
        --iam-account apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com

      A resposta será semelhante a esta:

      created key [a0b1c2d3e4f5a0b1c2d3e4f5a0b1c2d3e4f5a0b1] of type [json] as [./service-accounts/hybrid-
      example-apigee-org-admin.json] for [[email protected]]
      $ 
  3. Verifique o caminho para a chave da conta de serviço do administrador da organização da Apigee com o seguinte comando:
    ls service-accounts/*admin*

    O resultado será similar a este:

    service-accounts/hybrid-example-apigee-org-admin.json
  4. Crie uma variável de ambiente ORG_ADMIN_ACCOUNT com o nome do arquivo da chave. Exemplo:
    export ORG_ADMIN_ACCOUNT="hybrid-example-2-apigee-org-admin.json"
  5. Execute os seguintes comandos para receber um token:
    export GOOGLE_APPLICATION_CREDENTIALS=./service-accounts/$ORG_ADMIN_ACCOUNT
    export TOKEN=$(gcloud auth application-default print-access-token)
  6. Encontre o endereço de e-mail da conta de serviço apigee-synchronizer com o seguinte comando:
    gcloud iam service-accounts list --filter "apigee-synchronizer"

    Se ele corresponder ao padrão apigee-synchronizer$ORG_NAME.iam.gserviceaccount.com, use esse padrão na próxima etapa

  7. Chame a API setSyncAuthorization para ativar as permissões necessárias para o Sincronizador usando o seguinte comando:
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME:setSyncAuthorization" \
       -d '{"identities":["'"serviceAccount:apigee-synchronizer@$ORG_NAME.iam.gserviceaccount.com"'"]}'
    

    Em que:

    • $ORG_NAME: o nome da organização híbrida.
    • apigee-synchronizer$ORG_NAME.iam.gserviceaccount.com: o endereço de e-mail da conta de serviço apigee-syncronizer.
  8. Para verificar se a conta de serviço foi definida, use o seguinte comando para chamar a API a fim de conseguir 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/$ORG_NAME:getSyncAuthorization" \
       -d ''
    

    A resposta será semelhante a:

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

Aplicar a configuração ao cluster

Siga estas etapas 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 para o contexto correto usando o seguinte comando. O contexto atual será definido como o cluster ao qual você está implantando a Apigee híbrida.
    kubectl config get-contexts
  3. Verifique se a variável KUBECONFIG está definida usando o comando a seguir. Caso contrário, consulte os Pré-requisitos.
    echo $KUBECONFIG
  4. Faça uma inicialização de simulação. Execute o comando init com a sinalização --dry-run. Uma simulação permite verificar se há erros antes de qualquer alteração no cluster.

    Na versão híbrida 1.3, a sintaxe da sinalização --dry-run depende da versão de kubectl que você está executando. Verifique a versão de kubectl com o seguinte comando:

    kubectl version

    kubectl versão 1.17 e anteriores:

    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml --dry-run=true

    kubectl versão 1.18 e mais recentes:

    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml --dry-run=client
  5. Se não houver erros, execute o comando init da seguinte maneira:
    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml

    O comando init instala os serviços de implantação da Apigee,, o Apigee Deployment Controller e o Apigee Admission Webhook.

  6. Para verificar o status da implantação, use os seguintes comandos:
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
    kubectl get pods -n apigee-system
    kubectl get pods -n istio-system

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

  7. Faça uma instalação de simulação. Execute o comando apply com a sinalização --dry-run.

    kubectl versão 1.17 e anteriores:

    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true

    kubectl versão 1.18 e mais recentes:

    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=client
  8. Se não houver erros, aplique os componentes de ambiente de execução específicos da Apigee ao cluster com o seguinte comando:
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
  9. Para verificar o status da implantação, execute o seguinte comando:
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml

    Repita essa etapa até que os pods estejam prontos. Os pods podem levar vários minutos para serem iniciados.

Ativar Apigee Connect

O Apigee Connect gerencia a comunicação entre o plano de gerenciamento do Apigee e o MART no plano de ambiente de execução. Para mais informações, consulte Como usar o Apigee Connect.

Para ativar o Apigee Connect, siga as etapas a seguir:

  1. Na linha de comando, receba as credenciais de autenticação de gcloud. Veja o exemplo a seguir:

    TOKEN=$(gcloud auth print-access-token)

    Para verificar se o token foi preenchido, use echo, como mostra o exemplo a seguir:

    echo $TOKEN

    Isso exibirá seu token como uma string codificada.

    Para mais informações, consulte a visão geral da ferramenta de linha de comando gcloud.

  2. Use o comando a seguir para ver se o Apigee Connect está ativado para sua organização.
    curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME"

    Em que $ORG_NAME é o ID da organização.

    Se a saída contiver o seguinte:

          "name" : "features.mart.connect.enabled",
          "value" : "true"

    O Apigee Connect está ativado e o restante desta seção pode ser pulado.

  3. Ative o Apigee Connect com o seguinte comando:
    curl -H "Authorization: Bearer $TOKEN" -X PUT \
      -H "Content-Type: application/json" \
      -d '{
        "name" : "'"$ORG_NAME"'",
        "properties" : {
          "property" : [ {
            "name" : "features.hybrid.enabled",
            "value" : "true"
          }, {
            "name" : "features.mart.connect.enabled",
            "value" : "true"
          } ]
        }
      }' \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME"
    

    Se o resultado contiver as propriedades a seguir, o Apigee Connect foi ativado com sucesso:

          {
            "name": "features.mart.connect.enabled",
            "value": "true"
          },
          {
            "name": "features.hybrid.enabled",
            "value": "true"
          }
    

    A resposta será semelhante a esta:

    {
      "name": "hybrid-example-2",
      "createdAt": "1594409699772",
      "lastModifiedAt": "1594776283697",
      "environments": [
        "example-env"
      ],
      "properties": {
        "property": [
          {
            "name": "features.mart.connect.enabled",
            "value": "true"
          },
          {
            "name": "features.hybrid.enabled",
            "value": "true"
          }
        ]
      },
      "analyticsRegion": "us-central1",
      "runtimeType": "HYBRID",
      "subscriptionType": "TRIAL"
    }