Este passo explica como configurar o serviço Kubernetes para o gateway de entrada do Apigee. O serviço Kubernetes é necessário para cada implementação de entrada para obter um endereço IP que possa ser exposto. As chamadas de cliente para proxies invocam um nome do anfitrião que é resolvido para este endereço IP.
Opções para serviços Kubernetes para o gateway de entrada do Apigee
Existem duas opções para fornecer um serviço Kubernetes para atribuir o endereço IP…
- Crie um serviço Kubernetes personalizado para cada gateway de entrada do Apigee (recomendado).
- Use o serviço Kubernetes predefinido.
Crie o seu próprio serviço Kubernetes
Para ambientes de produção, o Apigee recomenda que crie um serviço Kubernetes personalizado para cada gateway de entrada.
- O Apigee elimina o serviço predefinido, mas não elimina o serviço kubernetes personalizado após a limpeza. Por conseguinte, o endereço IP não é libertado após a reinstalação do Apigee hybrid.
- Para plataformas que não estão no Google Cloud, como o EKS, o AKS e o OpenShift, tem de personalizar o serviço Kubernetes para funcionar com o fornecedor de nuvem. Por conseguinte, é melhor criar um serviço Kubernetes personalizado do que usar o serviço predefinido, porque o Apigee não suporta todas as personalizações do serviço Kubernetes predefinido.
Siga estes passos para configurar e encaminhar tráfego para o novo gateway de entrada.
- Crie um serviço do Kubernetes com as etiquetas de seletor de pods necessárias,
app
,ingress_name
eorg
. Estas etiquetas já estão presentes nos pods do gateway de entrada do Apigee.Crie um ficheiro de serviço com o seguinte modelo:
apiVersion: v1 kind: Service metadata: name: SERVICE_NAME namespace: APIGEE_NAMESPACE 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 este serviço. Por exemplo,
apigee-prod-1
. - INGRESS_NAME é o nome desta gateway de entrada do Apigee. Tem de corresponder ao nome
que indicou para
ingressGateways.name
no seu ficheirooverrides.yaml
. Para mais informações, consulteingressGateways
na referência de propriedades de configuração. - ORG_NAME é o nome da organização da Apigee. Tem de corresponder ao nome
que indicou para
org
no seu ficheirooverrides.yaml
. Para mais informações, consulteorg
na referência de propriedades de configuração. - LOAD_BALANCER_IP é o endereço IP do balanceador de carga.
Se tiver um endereço IP reservado para o seu equilibrador de carga, introduza-o.
Se ainda não tiver um endereço IP reservado, pode usar o endereço IP devolvido pelo serviço de entrada do Apigee predefinido. Use o
EXTERNAL-IP
devolvido pelo seguinte comando:kubectl get svc -n APIGEE_NAMESPACE -l app=apigee-ingressgateway
O gateway de entrada do Apigee expõe as seguintes portas:
Porta Descrição 443 Tráfego de tempo de execução. 15021 Verificação de funcionamento. status-port
expõe um ponto final/healthz/ready
que pode ser usado com as verificações de estado do GKE Ingress. - SERVICE_NAME é um nome usado para identificar este serviço. Por exemplo,
- Crie o serviço aplicando o seguinte:
SERVICE_FILENAME.yaml
kubectl apply -f SERVICE_FILENAME.yaml
- Encontre o IP externo do gateway de entrada do Apigee com o seguinte comando:
kubectl get svc -n APIGEE_NAMESPACE SERVICE_NAME
O resultado deve ter um aspeto semelhante ao seguinte:
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 do Apigee predefinido:
- Atualize a propriedade
ingressGateways[].svcType
paraClusterIP
no ficheiro de substituições:ingressGateways: svcType: ClusterIP
-
Atualize o gráfico
apigee-org
para aplicar as alterações:helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace apigee \ --atomic \ -f overrides.yaml
Consulte o artigo Desative o balanceador de carga para o serviço de gateway de entrada do Apigee predefinido para mais informações.
- Atualize a propriedade
Teste a gateway de entrada fazendo uma chamada de verificação de funcionamento.
curl -H 'User-Agent: GoogleHC' https://DOMAIN/healthz/ingress -k \ --resolve "DOMAIN:443:INGRESS_IP_ADDRESS"
Onde
- DOMAIN é o domínio que forneceu como nome do anfitrião para o grupo de ambientes que criou em Configuração do projeto e da organização – Passo 3: crie um grupo de ambientes.
- INGRESS_IP_ADDRESS é o endereço IP de entrada, por exemplo,
233.252.0.123
.
Em caso de êxito, o comando devolve:
Apigee Ingress is healthy
- Use este endereço IP para atualizar o seu registo DNS (normalmente, um registo
A
ouCNAME
) no seu registador ou fornecedor de DNS.
Use o serviço Kubernetes predefinido
Para ambientes de não produção ou para testar o tráfego inicial através do gateway de entrada do Apigee, o Apigee hybrid fornece um serviço Kubernetes predefinido para cada implementação de entrada.
Pode fazer alterações de configuração limitadas ao serviço predefinido no ficheiro overrides.yaml
. Para ver as opções de configuração disponíveis, consulte o artigo Gerir o gateway de entrada do Apigee. Por exemplo, pode adicionar anotações.
Para ambientes de produção, recomendamos que forneça um serviço Kubernetes para entrada. Siga os passos em Crie o seu próprio serviço Kubernetes.
- Encontre o IP externo do serviço de entrada do Apigee predefinido com o seguinte comando:
kubectl get svc -n APIGEE_NAMESPACE -l app=apigee-ingressgateway
O resultado deve ter um aspeto semelhante ao seguinte:
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 a gateway de entrada fazendo uma chamada de verificação de funcionamento.
curl -H 'User-Agent: GoogleHC' https://DOMAIN/healthz/ingress -k \ --resolve "DOMAIN:443:INGRESS_IP_ADDRESS"
Onde
- DOMAIN é o domínio que forneceu como nome do anfitrião para o grupo de ambientes que criou em Configuração do projeto e da organização – Passo 3: crie um grupo de ambientes.
- INGRESS_IP_ADDRESS é o endereço IP de entrada, por exemplo,
233.252.0.123
.
Em caso de êxito, o comando devolve:
Apigee Ingress is healthy
- Use este endereço IP para atualizar o seu registo DNS (normalmente, um registo
A
ouCNAME
) no seu registador ou fornecedor de DNS.