Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo ilustra o uso de recursos de ingressos do Kubernetes para expor um exemplo de serviço do Serviço Kubernetes do Azure (AKS) através do Azure Application Gateway sobre HTTP ou HTTPS.
Gorjeta
Considere o Application Gateway for Containers para sua solução de ingresso do Kubernetes.
Pré-requisitos
- Um Helm chart instalado
ingress-azure
- Greenfield Implantação: Se estiver a começar do zero, consulte estas instruções de instalação, que descrevem as etapas para implantar um cluster AKS com o Application Gateway e instalar o Application Gateway Ingress Controller (AGIC) no cluster AKS.
- Implantação Brownfield: Se já tiver um cluster AKS existente e uma implementação do Application Gateway, consulte estas instruções para instalar o AGIC no cluster AKS.
- Um certificado x509 e sua chave privada, se você quiser usar HTTPS neste aplicativo.
Implantar o aplicativo de livro de visitas
O guestbook
aplicativo é um aplicativo Kubernetes canônico que consiste em um frontend de interface do usuário da Web, um back-end e um banco de dados Redis.
Por padrão, guestbook
expõe seu aplicativo por meio de um serviço com o nome frontend
na porta 80
. Sem um recurso de entrada do Kubernetes, o serviço não é acessível de fora do cluster AKS. Você usa o aplicativo e configura recursos de entrada para acessar o aplicativo, por meio de HTTP e HTTPS.
Para implantar o guestbook
aplicativo:
Faça o download
guestbook-all-in-one.yaml
nesta página do GitHub.Implante
guestbook-all-in-one.yaml
em seu cluster AKS executando este comando:kubectl apply -f guestbook-all-in-one.yaml
Expor serviços por HTTP
Para expor o guestbook
aplicativo, use o seguinte recurso de entrada:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: guestbook
annotations:
kubernetes.io/ingress.class: azure/application-gateway
spec:
rules:
- http:
paths:
- backend:
serviceName: frontend
servicePort: 80
Essa entrada expõe o frontend
guestbook-all-in-one
serviço da implantação como um back-end padrão da implantação do Application Gateway.
Salve o recurso de entrada anterior como ing-guestbook.yaml
:
Implante
ing-guestbook.yaml
executando este comando:kubectl apply -f ing-guestbook.yaml
Verifique o log do controlador de entrada para o status da implantação.
Agora o guestbook
aplicativo deve estar disponível. Você pode verificar a disponibilidade visitando o endereço público da implantação do Application Gateway.
Expor serviços através de HTTPS
Sem um nome de host especificado
Se você não especificar um nome de host, o guestbook
serviço estará disponível em todos os nomes de host que apontam para a implantação do Application Gateway.
Antes de implantar o recurso de entrada, crie um segredo do Kubernetes para hospedar o certificado e a chave privada:
kubectl create secret tls <guestbook-secret-name> --key <path-to-key> --cert <path-to-cert>
Defina o seguinte recurso de entrada. Na seção
secretName
, substitua<guestbook-secret-name>
pelo nome do seu segredo.apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: guestbook annotations: kubernetes.io/ingress.class: azure/application-gateway spec: tls: - secretName: <guestbook-secret-name> rules: - http: paths: - backend: serviceName: frontend servicePort: 80
Armazene o recurso de entrada em um arquivo chamado
ing-guestbook-tls.yaml
.Implante
ing-guestbook-tls.yaml
executando este comando:kubectl apply -f ing-guestbook-tls.yaml
Verifique o log do controlador de entrada para o status da implantação.
Agora o guestbook
aplicativo está disponível em HTTP e HTTPS.
Com um nome de host especificado
Você também pode especificar o nome do host no recurso de ingressão para multiplexar configurações e serviços TLS. Quando você especifica um nome de host, o guestbook
serviço está disponível somente no host especificado.
Defina o seguinte recurso de entrada. Na seção
secretName
, substitua<guestbook-secret-name>
pelo nome do seu segredo. Nas secçõeshosts
ehost
, substitua<guestbook.contoso.com>
pelo nome do seu host.apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: guestbook annotations: kubernetes.io/ingress.class: azure/application-gateway spec: tls: - hosts: - <guestbook.contoso.com> secretName: <guestbook-secret-name> rules: - host: <guestbook.contoso.com> http: paths: - backend: serviceName: frontend servicePort: 80
Implante
ing-guestbook-tls-sni.yaml
executando este comando:kubectl apply -f ing-guestbook-tls-sni.yaml
Verifique o log do controlador de entrada para o status da implantação.
Agora o guestbook
aplicativo está disponível em HTTP e HTTPS, apenas no host especificado.
Integrar noutros serviços
Use o seguinte recurso de entrada para adicionar caminhos e redirecionar esses caminhos para outros serviços:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: guestbook
annotations:
kubernetes.io/ingress.class: azure/application-gateway
spec:
rules:
- http:
paths:
- path: </other/*>
backend:
serviceName: <other-service>
servicePort: 80
- backend:
serviceName: frontend
servicePort: 80