Este passo explica como configurar o serviço Kubernetes para o gateway de entrada do Apigee. Os serviços do Kubernetes são necessários por 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, uma vez que 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 exemplo: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 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 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 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.
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 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 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
-
Aplique as alterações com
apigeectl apply --org
.${APIGEECTL_HOME}/apigeectl apply -f ${HYBRID_FILES}/overrides/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 -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.