Aplicar a configuração ao cluster
Para instalar a Apigee híbrida no cluster:
- Verifique se você está no diretório
hybrid-base-directory/hybrid-files
. - 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
- 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. - 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.
- 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
- 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
- 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.
- 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
- 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
- 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.
- 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.
- 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
. - 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.
- 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"]}'
- 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:
- 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. - 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.
- 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.
- 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.