Sdílet prostřednictvím


Zveřejnění služby AKS přes PROTOKOL HTTP nebo HTTPS pomocí služby Application Gateway

Tento článek ukazuje využití prostředků příchozího přenosu dat Kubernetes k zveřejnění ukázkové služby Azure Kubernetes Service (AKS) prostřednictvím brány Aplikace Azure lication přes PROTOKOL HTTP nebo HTTPS.

Tip

Zvažte službu Application Gateway pro kontejnery pro vaše řešení příchozího přenosu dat Kubernetes.

Požadavky

  • Nainstalovaný ingress-azure chart Helm:
    • Nasazení Greenfieldu: Pokud začínáte úplně od začátku, projděte si tyto pokyny k instalaci, které popisují postup nasazení clusteru AKS se službou Application Gateway a instalaci kontroleru příchozího přenosu dat služby Application Gateway (AGIC) do clusteru AKS.
    • Nasazení Brownfieldu: Pokud máte existující cluster AKS a nasazení služby Application Gateway, přečtěte si tyto pokyny k instalaci AGIC v clusteru AKS.
  • Pokud chcete pro tuto aplikaci použít HTTPS, certifikát x509 a jeho privátní klíč.

Nasazení aplikace guestbooku

Aplikace guestbook je kanonická aplikace Kubernetes, která se skládá z front-endu webového uživatelského rozhraní, back-endu a databáze Redis.

Ve výchozím nastavení guestbook zpřístupňuje aplikaci prostřednictvím služby s názvem frontend na portu 80. Bez prostředku příchozího přenosu dat Kubernetes není služba přístupná mimo cluster AKS. Použijete aplikaci a nastavíte prostředky příchozího přenosu dat pro přístup k aplikaci prostřednictvím protokolu HTTP a HTTPS.

guestbook Nasazení aplikace:

  1. Stáhněte si guestbook-all-in-one.yaml z této stránky GitHubu.

  2. Nasazení guestbook-all-in-one.yaml do clusteru AKS spuštěním tohoto příkazu:

    kubectl apply -f guestbook-all-in-one.yaml
    

Zveřejnění služeb přes PROTOKOL HTTP

Pokud chcete aplikaci zveřejnit guestbook , použijte následující prostředek příchozího přenosu dat:

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

Tento příchozí přenos dat zveřejňuje frontend službu guestbook-all-in-one nasazení jako výchozí back-end nasazení služby Application Gateway.

Uložte předchozí prostředek příchozího přenosu dat jako ing-guestbook.yaml:

  1. Nasazení ing-guestbook.yaml spuštěním tohoto příkazu:

    kubectl apply -f ing-guestbook.yaml
    
  2. Zkontrolujte stav nasazení v protokolu kontroleru příchozího přenosu dat.

guestbook Aplikace by teď měla být dostupná. Dostupnost můžete zkontrolovat tak, že navštívíte veřejnou adresu nasazení služby Application Gateway.

Zveřejnění služeb přes HTTPS

Bez zadaného názvu hostitele

Pokud nezadáte název hostitele, guestbook bude služba dostupná ve všech názvech hostitelů, které odkazují na nasazení služby Application Gateway.

  1. Před nasazením prostředku příchozího přenosu dat vytvořte tajný klíč Kubernetes pro hostování certifikátu a privátního klíče:

    kubectl create secret tls <guestbook-secret-name> --key <path-to-key> --cert <path-to-cert>
    
  2. Definujte následující prostředek příchozího přenosu dat. secretName V části nahraďte <guestbook-secret-name> názvem tajného kódu.

    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
    
  3. Uložte prostředek příchozího přenosu dat do souboru s názvem ing-guestbook-tls.yaml.

  4. Nasazení ing-guestbook-tls.yaml spuštěním tohoto příkazu:

    kubectl apply -f ing-guestbook-tls.yaml
    
  5. Zkontrolujte stav nasazení v protokolu kontroleru příchozího přenosu dat.

guestbook Aplikace je teď dostupná na HTTP i HTTPS.

Se zadaným názvem hostitele

Můžete také zadat název hostitele pro prostředek příchozího přenosu dat do vícenásobných konfigurací a služeb TLS. Když zadáte název hostitele, guestbook bude služba dostupná pouze na zadaném hostiteli.

  1. Definujte následující prostředek příchozího přenosu dat. secretName V části nahraďte <guestbook-secret-name> názvem tajného kódu. V částech hosts a host částech nahraďte <guestbook.contoso.com> názvem hostitele.

    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
    
  2. Nasazení ing-guestbook-tls-sni.yaml spuštěním tohoto příkazu:

    kubectl apply -f ing-guestbook-tls-sni.yaml
    
  3. Zkontrolujte stav nasazení v protokolu kontroleru příchozího přenosu dat.

guestbook Aplikace je teď dostupná na http i HTTPS, pouze na zadaném hostiteli.

Integrace s ostatními službami

Pomocí následujícího prostředku příchozího přenosu dat přidejte cesty a tyto cesty přesměrujte na jiné služby:

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