Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln illustrerar användningen av Kubernetes-ingressresurser för att exponera en exempeltjänst för Azure Kubernetes Service (AKS) via Azure Application Gateway via HTTP eller HTTPS.
Dricks
Överväg Application Gateway för containrar för din Kubernetes-ingresslösning.
Förutsättningar
- Ett installerat
ingress-azureHelm-diagram:- Greenfield-distribution: Om du börjar från början läser du de här installationsanvisningarna, som beskriver steg för att distribuera ett AKS-kluster med Application Gateway och installera Application Gateway Ingress Controller (AGIC) i AKS-klustret.
- Distribution av Brownfield: Om du har ett befintligt AKS-kluster och en Application Gateway-distribution läser du de här anvisningarna för att installera AGIC i AKS-klustret.
- Ett x509-certifikat och dess privata nyckel om du vill använda HTTPS i det här programmet.
Distribuera gästboksprogrammet
Programmet guestbook är ett kanoniskt Kubernetes-program som består av en klientdel för webbgränssnittet, en serverdel och en Redis-databas.
Som standard guestbook exponerar programmet via en tjänst med namnet frontend på porten 80. Utan en Kubernetes-ingressresurs är tjänsten inte tillgänglig utanför AKS-klustret. Du använder programmet och konfigurerar inkommande resurser för att komma åt programmet via HTTP och HTTPS.
Så här distribuerar guestbook du programmet:
Ladda ned
guestbook-all-in-one.yamlfrån den här GitHub-sidan.Distribuera
guestbook-all-in-one.yamltill ditt AKS-kluster genom att köra det här kommandot:kubectl apply -f guestbook-all-in-one.yaml
Exponera tjänster via HTTP
Om du vill exponera guestbook programmet använder du följande ingressresurs:
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
Den här ingressen frontend exponerar distributionstjänsten guestbook-all-in-one som en standardserverdel för Application Gateway-distributionen.
Spara föregående ingressresurs som ing-guestbook.yaml:
Distribuera
ing-guestbook.yamlgenom att köra det här kommandot:kubectl apply -f ing-guestbook.yamlKontrollera distributionsstatusen i loggen för ingresskontrollanten.
guestbook Nu ska programmet vara tillgängligt. Du kan kontrollera tillgängligheten genom att besöka den offentliga adressen för Application Gateway-distributionen.
Exponera tjänster via HTTPS
Utan ett angivet värdnamn
Om du inte anger ett värdnamn guestbook är tjänsten tillgänglig för alla värdnamn som pekar på Application Gateway-distributionen.
Innan du distribuerar ingressresursen skapar du en Kubernetes-hemlighet som värd för certifikatet och den privata nyckeln:
kubectl create secret tls <guestbook-secret-name> --key <path-to-key> --cert <path-to-cert>Definiera följande ingressresurs. I avsnittet
secretNameersätter du<guestbook-secret-name>med namnet på din hemlighet.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: 80Lagra ingressresursen i en fil med namnet
ing-guestbook-tls.yaml.Distribuera
ing-guestbook-tls.yamlgenom att köra det här kommandot:kubectl apply -f ing-guestbook-tls.yamlKontrollera distributionsstatusen i loggen för ingresskontrollanten.
Nu är programmet guestbook tillgängligt på både HTTP och HTTPS.
Med ett angivet värdnamn
Du kan också ange värdnamnet på ingressresursen för multiplex-TLS-konfigurationer och -tjänster. När du anger ett värdnamn guestbook är tjänsten endast tillgänglig på den angivna värden.
Definiera följande ingressresurs. I avsnittet
secretNameersätter du<guestbook-secret-name>med namnet på din hemlighet. I avsnittenhostsochhostersätter du<guestbook.contoso.com>med värdnamnet.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: 80Distribuera
ing-guestbook-tls-sni.yamlgenom att köra det här kommandot:kubectl apply -f ing-guestbook-tls-sni.yamlKontrollera distributionsstatusen i loggen för ingresskontrollanten.
Nu är programmet guestbook tillgängligt på både HTTP och HTTPS, endast på den angivna värden.
Integrera med andra tjänster
Använd följande ingressresurs för att lägga till sökvägar och omdirigera dessa sökvägar till andra tjänster:
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