Nesta etapa, explicamos como configurar o serviço do Kubernetes para o gateway de entrada da Apigee. O serviço Kubernetes é necessário para cada implantação de entrada conseguir um endereço IP que possa ser exposto. As chamadas do cliente para proxies invocarão um nome de host que será resolvido para esse endereço IP.
Opções dos serviços do Kubernetes para seu gateway de entrada da Apigee
Há duas opções para fornecer um serviço do Kubernetes para atribuir o endereço IP ...
- Crie um serviço personalizado do Kubernetes para cada gateway de entrada da Apigee (recomendado).
- Usar o serviço padrão do Kubernetes
Criar seu próprio serviço do Kubernetes
Para ambientes de produção, a Apigee recomenda criar um serviço personalizado do Kubernetes para cada gateway de entrada.
- A Apigee exclui o serviço padrão, mas não exclui o serviço personalizado do Kubernetes após a limpeza. Portanto, o endereço IP não será liberado após a reinstalação do Apigee híbrido.
- Para plataformas que não estão no Google Cloud, como EKS, AKS e OpenShift, é necessário personalizar o serviço do Kubernetes para trabalhar com o provedor de nuvem. Portanto, é melhor criar um serviço personalizado do Kubernetes do que usar o serviço padrão, já que a Apigee não é compatível com todas as personalizações do serviço padrão do Kubernetes.
Siga as etapas abaixo para configurar e rotear o tráfego para o novo gateway de entrada.
- Crie um serviço do Kubernetes com os rótulos de seletor de pods necessários,
app
,ingress_name
eorg
. Esses rótulos já estão presentes nos pods de gateway de entrada da Apigee.Crie um arquivo de serviço usando o seguinte modelo:
apiVersion: v1 kind: Service metadata: name: SERVICE_NAME namespace: apigee spec: ports: - name: status-port port: 15021 protocol: TCP targetPort: 15021 - name: https port: 443 protocol: TCP targetPort: 8443 selector: app: apigee-ingressgateway #required ingress_name: INGRESS_NAME org: ORG_NAME type: LoadBalancer loadBalancerIP: LOAD_BALANCER_IP
- SERVICE_NAME é um nome usado para identificar esse serviço. Por exemplo,
apigee-prod-1
. - INGRESS_NAME é o nome do gateway de entrada da Apigee. Ele precisa corresponder ao nome
fornecido para
ingressGateways.name
no arquivooverrides.yaml
. Para mais informações, consulteingressGateways
na referência da propriedade de configuração. - ORG_NAME é o nome da organização da Apigee. Ele precisa corresponder ao nome
fornecido para
org
no arquivooverrides.yaml
. Para mais informações, consulteorg
na referência da propriedade de configuração. - LOAD_BALANCER_IP é o endereço IP do balanceador de carga.
Se você tiver um endereço IP reservado para o balanceador de carga, insira-o.
Se você ainda não tiver um endereço IP reservado, use o retornado pelo serviço de entrada padrão da Apigee. Use o
EXTERNAL-IP
retornado pelo seguinte comando:kubectl get svc -n apigee -l app=apigee-ingressgateway
O gateway de entrada da Apigee expõe as seguintes portas:
Porta Descrição 443 Tráfego do ambiente de execução. 15021 Verificação de integridade status-port
expõe um endpoint/healthz/ready
que pode ser usado com as verificações de integridade de entrada do GKE. - SERVICE_NAME é um nome usado para identificar esse serviço. Por exemplo,
- Crie o serviço aplicando
SERVICE_FILENAME.yaml
:kubectl apply -f SERVICE_FILENAME.yaml
- Encontre o IP externo do gateway de entrada da Apigee com o seguinte comando:
kubectl get svc -n apigee SERVICE_NAME
A resposta será semelhante a esta:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE apigee-ingressgateway-prod-hybrid-37a39bd LoadBalancer 192.0.2.123 233.252.0.123 15021:32049/TCP,80:31624/TCP,443:30723/TCP 16h
-
Desative o balanceador de carga para o serviço de gateway de entrada padrão da Apigee:
- Atualize a propriedade
ingressGateways[].svcType
paraClusterIP
no arquivo de substituição:ingressGateways: svcType: ClusterIP
-
Aplique as mudanças com
apigeectl apply --org
.${APIGEECTL_HOME}/apigeectl apply -f ${HYBRID_FILES}/overrides/overrides.yaml
Consulte Desativar o balanceador de carga para o serviço de gateway de entrada padrão da Apigee para mais informações.
- Atualize a propriedade
Teste o gateway fazendo uma chamada de verificação de integridade.
curl -H 'User-Agent: GoogleHC/' https://DOMAIN/healthz/ingress -k \ --resolve "DOMAIN:443:INGRESS_IP_ADDRESS"
Onde
- DOMAIN é o domínio que você forneceu como nome do host para o grupo de ambiente criado em Configuração do projeto e da organização - etapa 3: criar um grupo de ambiente.
- INGRESS_IP_ADDRESS é o endereço IP de entrada, por exemplo,
233.252.0.123
.
Se o comando estiver correto, ele retornará:
Apigee Ingress is healthy
- Use esse endereço IP para atualizar o registro DNS (geralmente um registro
A
ouCNAME
) no seu registrador ou provedor de DNS.
Usar o serviço padrão do Kubernetes
Para ambientes que não estão em produção ou para testar o tráfego inicial pelo gateway de entrada da Apigee, a Apigee híbrida oferece serviço padrão do Kubernetes para cada implantação de entrada.
É possível fazer alterações limitadas de configuração no serviço padrão no arquivo
overrides.yaml
. Para ver as opções de configuração disponíveis, consulte Como gerenciar o gateway de entrada da Apigee. Por exemplo, é possível adicionar anotações.
Para ambientes de produção, recomendamos fornecer um serviço do Kubernetes para entrada. Siga as etapas em Fornecer seu próprio serviço do Kubernetes.
- Encontre o IP externo do serviço de entrada padrão da Apigee com o seguinte comando:
kubectl get svc -n apigee -l app=apigee-ingressgateway
A resposta será semelhante a esta:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE apigee-ingressgateway-prod-hybrid-37a39bd LoadBalancer 192.0.2.123 233.252.0.123 15021:32049/TCP,80:31624/TCP,443:30723/TCP 16h
Teste o gateway fazendo uma chamada de verificação de integridade.
curl -H 'User-Agent: GoogleHC/' https://DOMAIN/healthz/ingress -k \ --resolve "DOMAIN:443:INGRESS_IP_ADDRESS"
Onde
- DOMAIN é o domínio que você forneceu como nome do host para o grupo de ambiente criado em Configuração do projeto e da organização - etapa 3: criar um grupo de ambiente.
- INGRESS_IP_ADDRESS é o endereço IP de entrada, por exemplo,
233.252.0.123
.
Se o comando estiver correto, ele retornará:
Apigee Ingress is healthy
- Use esse endereço IP para atualizar o registro DNS (geralmente um registro
A
ouCNAME
) no seu registrador ou provedor de DNS.