Este tópico explica como ativar clientes não SNI, clientes HTTP e uma combinação de ambos para utilização com o Apigee hybrid.
Como configurar um cliente não SNI
Esta secção explica como ativar o suporte para clientes não SNI (Indicação do nome do servidor) no Apigee hybrid. Um cliente não SNI usa a porta 443 e é necessário se quiser integrar instâncias de tempo de execução híbridas com o Google Cloud Load Balancing ou para clientes que não suportam SNI.- Crie uma definição de recurso personalizado (CRD) ApigeeRoute. Certifique-se de que
enableNonSniClient
está definido comotrue
:apiVersion: apigee.cloud.google.com/v1alpha1 kind: ApigeeRoute metadata: name: route_name namespace: apigee spec: hostnames: - "*" ports: - number: 443 protocol: HTTPS tls: credentialName: credential_name mode: SIMPLE #optional minProtocolVersion: TLS_AUTO selector: app: istio-ingressgateway enableNonSniClient: true
Onde:
- route_name é o nome que atribui ao CRD.
- credential_name é o nome de um segredo do Kubernetes implementado no cluster que contém credenciais TLS para o seu anfitrião virtual.
hostnames
tem de ser definido como o caráter universal "*".
- Abra o ficheiro de substituições e faça a alteração descrita no passo seguinte.
- Para cada grupo de ambientes, adicione o nome ApigeeRoute à propriedade
additionalGateways
. Por exemplo:virtualhosts: - name: default sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.pem additionalGateways: ["route_name"]
- Guarde o ficheiro CRD. Por exemplo:
ApigeeRoute.yaml
- Aplique o CRD ao cluster:
kubectl apply -f ApigeeRoute.yaml -n apigee
- Aplique a alteração a
virtualhosts
:$APIGEECTL_HOME/apigeectl apply -f overrides.yaml --settings virtualhosts --env $ENVIRONMENT
Notas de utilização
- O que acontece se o cluster tiver mais do que uma organização?
Uma vez que a entrada está ao nível do cluster para uma determinada porta (443) e só pode haver um par de chave/certificado para o CRD ApigeeRoute, todas as organizações têm de partilhar o mesmo par de chave/certificado.
- O que acontece se o cluster tiver mais do que um grupo de ambientes? Vai funcionar
se os anfitriões virtuais partilharem o mesmo par de chave/certificado?
Todos os nomes de anfitrião em todos os grupos de ambientes têm de usar o mesmo par de chave/certificado.
- Por que motivo estamos a criar um ApigeeRoute em vez de um Gateway?
As ApigeeRoutes podem ser validadas pelo Apigee. No entanto, não é possível validar o Gateway (o CRD do Istio). Tecnicamente, até o Gateway pode funcionar, mas podemos evitar potenciais erros de configuração (através de um webhook de validação).
Ative clientes HTTP
Esta secção explica o suporte para clientes HTTP para utilização com o Apigee hybrid.
- Crie uma definição de recurso personalizado (CRD) ApigeeRoute. Por exemplo:
apiVersion: apigee.cloud.google.com/v1alpha1 kind: ApigeeRoute metadata: name: route_name namespace: apigee spec: hostnames: - "*" ports: - number: 80 protocol: HTTP selector: app: istio-ingressgateway enableNonSniClient: true
Onde:
- route_name é o nome que atribui ao CRD.
hostnames
tem de ser definido como o caráter universal "*".
- Abra o ficheiro de substituições e faça a alteração descrita no passo seguinte.
- Para cada grupo de ambientes, adicione o nome ApigeeRoute à propriedade
additionalGateways
. Por exemplo:virtualhosts: - name: default sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.pem additionalGateways: ["route_name"]
- Guarde o ficheiro CRD. Por exemplo:
ApigeeRoute.yaml
- Aplique o CRD ao cluster:
kubectl apply -f ApigeeRoute.yaml -n apigee
- Aplique a alteração a
virtualhosts
:$APIGEECTL_HOME/apigeectl apply -f overrides.yaml --settings virtualhosts --env $ENVIRONMENT
Ative o suporte para clientes HTTP e não SNI
Esta secção explica como ativar ambos os clientes não SNI (porta 443) e HTTP (porta 80) para utilização com o Apigee hybrid.
- Crie uma definição de recurso personalizado (CRD) ApigeeRoute. Por exemplo:
apiVersion: apigee.cloud.google.com/v1alpha1 kind: ApigeeRoute metadata: name: route_name namespace: apigee spec: hostnames: - "*" ports: - number: 443 protocol: HTTPS tls: credentialName: credential_name mode: SIMPLE #optional minProtocolVersion: TLS_AUTO - number: 80 protocol: HTTP selector: app: istio-ingressgateway enableNonSniClient: true
Onde:
- route_name é o nome que atribui ao CRD.
hostname
tem de ser definido como o caráter universal "*".- credential_name é o nome de um segredo do Kubernetes implementado no cluster que contém credenciais TLS para o seu anfitrião virtual.
- Abra o ficheiro de substituições e faça a alteração descrita no passo seguinte.
- Para cada grupo de ambientes, adicione o nome ApigeeRoute à propriedade
additionalGateways
. Por exemplo:virtualhosts: - name: default sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.pem additionalGateways: ["route_name"]
- Guarde o ficheiro CRD. Por exemplo:
ApigeeRoute.yaml
- Aplique o CRD ao cluster:
kubectl apply -f ApigeeRoute.yaml -n apigee
- Aplique a alteração a
virtualhosts
:$APIGEECTL_HOME/apigeectl apply -f overrides.yaml --settings virtualhosts --env $ENVIRONMENT