Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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.yamlnesta página do GitHub.Implante
guestbook-all-in-one.yamlem 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 frontendguestbook-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.yamlexecutando este comando:kubectl apply -f ing-guestbook.yamlVerifique 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: 80Armazene o recurso de entrada em um arquivo chamado
ing-guestbook-tls.yaml.Implante
ing-guestbook-tls.yamlexecutando este comando:kubectl apply -f ing-guestbook-tls.yamlVerifique 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çõeshostsehost, 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: 80Implante
ing-guestbook-tls-sni.yamlexecutando este comando:kubectl apply -f ing-guestbook-tls-sni.yamlVerifique 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