|
Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official. |
Configure o Gateway do Istio
|
Rancher-Istio foi descontinuado desde o Rancher v2.12.0; recorra à SUSE Application Collection versão do Istio para segurança aprimorada (incluída nas assinaturas do SUSE Rancher Prime). Informações detalhadas podem ser encontradas em este anúncio. |
O gateway de cada cluster pode ter sua própria porta ou balanceador de carga, que não está relacionado a uma malha de serviços. Por padrão, cada cluster provisionado pelo Rancher possui um controlador de ingress NGINX que permite o tráfego para o cluster.
Você pode usar o controlador de Ingress do Nginx com ou sem o Istio instalado. Se este for o único gateway do seu cluster, o Istio poderá rotear o tráfego de serviço para serviço, mas o Istio não poderá receber tráfego de fora do cluster.
Para permitir que o Istio receba tráfego externo, você precisa habilitar o gateway do Istio, que funciona como um proxy norte-sul para tráfego externo. Quando você habilita o gateway do Istio, o resultado é que seu cluster terá dois Ingress.
Você também precisará configurar um gateway do Kubernetes para seus serviços. Este recurso do Kubernetes aponta para a implementação do gateway de ingress do Istio para o cluster.
Você pode rotear tráfego para a malha de serviços com um balanceador de carga ou usar o gateway NodePort do Istio. Esta seção descreve como configurar o gateway NodePort.
Para mais informações sobre o gateway do Istio, consulte a documentação do Istio.
Habilitar um Gateway do Istio
O gateway de ingress é um serviço do Kubernetes que será implantado em seu cluster. O Gateway do Istio permite uma personalização e flexibilidade mais extensas.
-
Clique em ☰ > Gerenciamento de Cluster.
-
Vá para o cluster que você criou e clique em Explorar.
-
Na barra de navegação à esquerda, clique em menu:Istio[Gateways].
-
Clique em Criar a partir do YAML.
-
Cole seu yaml do Gateway do Istio, ou Leia do Arquivo.
-
Clique em Criar.
Resultado: O gateway está implantado e agora vai rotear o tráfego com as regras aplicadas.
Exemplo de Gateway do Istio
Adicionamos as implantações do aplicativo BookInfo nos serviços ao passar pelo exemplo de Cargas de Trabalho. Em seguida, adicionamos um Gateway do Istio para que o aplicativo seja acessível de fora do seu cluster.
-
Clique em ☰ > Gerenciamento de Cluster.
-
Vá para o cluster que você criou e clique em Explorar.
-
Na barra de navegação à esquerda, clique em menu:Istio[Gateways].
-
Clique em Criar a partir do YAML.
-
Copie e cole o yaml do Gateway fornecido abaixo.
-
Clique em Criar.
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: bookinfo-gateway
spec:
selector:
istio: ingressgateway # use istio default controller
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "*"
---
Depois, para implantar o VirtualService que fornece o roteamento de tráfego para o Gateway:
-
Clique em ☰ > Gerenciamento de Cluster.
-
Vá para o cluster que você criou e clique em Explorar.
-
Na barra de navegação à esquerda, clique em menu:Istio[VirtualServices].
-
Copie e cole o yaml do VirtualService fornecido abaixo.
-
Clique em Criar.
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: bookinfo
spec:
hosts:
- "*"
gateways:
- bookinfo-gateway
http:
- match:
- uri:
exact: /productpage
- uri:
prefix: /static
- uri:
exact: /login
- uri:
exact: /logout
- uri:
prefix: /api/v1/products
route:
- destination:
host: productpage
port:
number: 9080
Resultado: Você configurou seu recurso de gateway para que o Istio possa receber tráfego de fora do cluster.
Confirme que o recurso existe executando:
kubectl get gateway -A
O resultado deve ser algo como isto:
NAME AGE bookinfo-gateway 64m
Acesse o Serviço ProductPage a partir de um Navegador Web
Para testar e ver se o aplicativo BookInfo foi implantado corretamente, o aplicativo pode ser visualizado em um navegador web usando o IP e a porta do controlador Istio, combinados com o nome da solicitação especificado no seu recurso de gateway Kubernetes:
http://<IP of Istio controller>:<Port of istio controller>/productpage
Para obter a URL e a porta do gateway de ingress,
-
Clique em ☰ > Gerenciamento de Cluster.
-
Vá para o cluster que você criou e clique em Explorar.
-
Na barra de navegação à esquerda, clique em Carga de Trabalho.
-
Role para baixo até o namespace
istio-system. -
Dentro de
istio-system, há uma carga de trabalho chamadaistio-ingressgateway. Sob o nome dessa carga de trabalho, você deve ver links, como80/tcp. -
Clique em um desses links. Isso deve mostrar a URL do gateway de ingress no seu navegador web. Anexe
/productpageà URL.
Resultado: Você deve ver o aplicativo BookInfo no navegador web.
Para ajuda na inspeção da URL e das portas do controlador Istio, tente os comandos da documentação do Istio.
Solução de problemas
A documentação oficial do Istio sugere kubectl comandos para inspecionar o host de ingress correto e a porta de ingress para solicitações externas.
Confirmando que o gateway do Kubernetes corresponde ao controlador de ingress do Istio.
Você pode tentar os passos nesta seção para garantir que o gateway do Kubernetes esteja configurado corretamente.
No recurso do gateway, o seletor refere-se ao controlador de ingress padrão do Istio pelo seu rótulo, no qual a chave do rótulo é istio e o valor é ingressgateway. Para garantir que o rótulo seja apropriado para o gateway, faça o seguinte:
-
Clique em ☰ > Gerenciamento de Cluster.
-
Vá para o cluster que você criou e clique em Explorar.
-
Na barra de navegação à esquerda, clique em Carga de Trabalho.
-
Role para baixo até o namespace
istio-system. -
Dentro de
istio-system, há uma carga de trabalho chamadaistio-ingressgateway. Clique no nome desta carga de trabalho e vá para a seção Rótulos e Anotações. Você deve ver que ele tem a chaveistioe o valoringressgateway. Isso confirma que o seletor no recurso gateway corresponde ao controlador de ingress padrão do Istio.