Configurar endereços IP externos para o Google Distributed Cloud (somente software) para VMware com balanceadores de carga F5 BIG-IP
Para mais informações, consulte Visão geral do Cloud Service Mesh.A instalação padrão do Cloud Service Mesh no Google Distributed Cloud (somente software) para VMware supõe que
os endereços IP externo são alocados automaticamente para os serviços do LoadBalancer
.
Isso não é verdade para o Google Distributed Cloud (somente software) para VMware com balanceadores de carga F5 BIG-IP.
Por isso, você precisa alocar um ou mais endereços IP externos,
dependendo da configuração da malha de serviço:
- Um endereço IP externo para o recurso de gateway de entrada do Cloud Service Mesh, por como o gateway usado pelos clientes para acessar as cargas de trabalho na Internet.
- Outro endereço IP externo para que os clusters se comuniquem entre eles se existirem em redes diferentes na sua malha de serviço. Isso é conhecido como gateway leste-oeste.
Como configurar o endereço IP do gateway de entrada
Para configurar um endereço IP externo para o gateway de entrada, siga as instruções em uma dessas seções, dependendo das suas Google Distributed Cloud (somente software) para o modo de balanceamento de carga do VMware:
- Corrija a configuração do serviço
istio-ingressgateway
com o endereço IP externo para o gateway de entrada:kubectl patch svc istio-ingressgateway -n istio-system --type='json' -p '[{"op": "add", "path": "/spec/loadBalancerIP", "value": "INGRESS_GATEWAY_IP"}]'
-
Veja a configuração do serviço
istio-ingressgateway
no shell: Cada uma das portas para os gateways do Cloud Service Mesh é exibida. A resposta ao comando é semelhante ao exemplo abaixo:kubectl get svc -n istio-system istio-ingressgateway -o yaml
... ports: - name: status-port nodePort: 30391 port: 15020 protocol: TCP targetPort: 15020 - name: http2 nodePort: 31380 port: 80 protocol: TCP targetPort: 80 - name: https nodePort: 31390 port: 443 protocol: TCP targetPort: 443 - name: tcp nodePort: 31400 port: 31400 protocol: TCP targetPort: 31400 - name: https-kiali nodePort: 31073 port: 15029 protocol: TCP targetPort: 15029 - name: https-prometheus nodePort: 30253 port: 15030 protocol: TCP targetPort: 15030 - name: https-grafana nodePort: 30050 port: 15031 protocol: TCP targetPort: 15031 - name: https-tracing nodePort: 31204 port: 15032 protocol: TCP targetPort: 15032 - name: tls nodePort: 30158 port: 15443 protocol: TCP targetPort: 15443 ...
-
Exponha essas portas pelo balanceador de carga.
Por exemplo, a porta de serviço chamadahttp2
temport
80 enodePort
31380. Suponha que os endereços de nó do cluster de usuário sejam192.168.0.10
,192.168.0.11
e192.168.0.12
, e o VIP do balanceador de carga seja203.0.113.1
.
Configure o balanceador de carga para que o tráfego enviado para203.0.113.1:80
seja encaminhado para192.168.0.10:31380
,192.168.0.11:31380
ou192.168.0.12:31380
. É possível selecionar as portas de serviço que quer expor nesse VIP.
Modo integrado
Modo manual
Confirme se o gateway de entrada recebeu um endereço IP externo. pode haver um pequeno atraso que exija a repetição do comando até que você o resultado esperado:
kubectl --context="${CTX_CLUSTER1}" get svc istio-ingressgateway -n istio-system
A resposta esperada é:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 10.80.6.124 34.75.71.237 ... 51s
Como configurar o endereço IP do gateway east-west
Para configurar um endereço IP externo para o gateway leste-oeste, siga as instruções em uma dessas seções, dependendo das suas Google Distributed Cloud (somente software) para o modo de balanceamento de carga do VMware:
- Corrija a configuração do serviço
istio-eastwestgateway
com o endereço IP externo para o gateway leste-oeste:kubectl patch svc istio-eastwestgateway -n istio-system --type='json' -p '[{"op": "add", "path": "/spec/loadBalancerIP", "value": "EAST_WEST_GATEWAY_IP"}]'
-
Veja a configuração do serviço
istio-eastwestgateway
no shell: Cada uma das portas para os gateways do Cloud Service Mesh é exibida. A resposta ao comando é semelhante ao exemplo abaixo:kubectl get svc -n istio-system istio-eastwestgateway -o yaml
ports: - name: status-port nodePort: 31781 port: 15021 protocol: TCP targetPort: 15021 - name: tls nodePort: 30498 port: 15443 protocol: TCP targetPort: 15443 - name: tls-istiod nodePort: 30879 port: 15012 protocol: TCP targetPort: 15012 - name: tls-webhook nodePort: 30336 port: 15017 protocol: TCP targetPort: 15017 ...
-
Exponha essas portas pelo balanceador de carga.
Por exemplo, a porta de serviço chamadahttp2
temport
80 enodePort
31380. Suponha que os endereços de nó do cluster de usuário sejam192.168.0.10
,192.168.0.11
e192.168.0.12
, e o VIP do balanceador de carga seja203.0.113.1
.
Configure o balanceador de carga para que o tráfego enviado para203.0.113.1:80
seja encaminhado para192.168.0.10:31380
,192.168.0.11:31380
ou192.168.0.12:31380
. É possível selecionar as portas de serviço que quer expor nesse VIP.
Modo integrado
Modo manual
Confirme se o gateway leste-oeste recebeu um endereço IP externo. pode haver um pequeno atraso que exija a execução de repetir este comando até que você o resultado esperado:
kubectl --context="${CTX_CLUSTER1}" get svc istio-eastwestgateway -n istio-system
A resposta esperada é:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-eastwestgateway LoadBalancer 10.80.6.124 34.75.71.237 ... 51s