Sdílet prostřednictvím


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

Tyto kurzy vám pomůžou ilustrovat využití prostředků příchozího přenosu dat Kubernetes k zveřejnění ukázkové služby Kubernetes prostřednictvím brány Aplikace Azure přes PROTOKOL HTTP nebo HTTPS.

Tip

Podívejte se také na téma Co je Application Gateway pro kontejnery.

Požadavky

  • Nainstalovaný ingress-azure chart Helm.
    • Nasazení Greenfieldu: Pokud začínáte úplně od začátku, přečtě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 do clusteru AKS.
    • Nasazení Brownfieldu: Pokud máte existující cluster AKS a službu Application Gateway, přečtěte si tyto pokyny k instalaci kontroleru příchozího přenosu dat služby Application Gateway do clusteru AKS.
  • Pokud chcete v této aplikaci používat HTTPS, potřebujete certifikát x509 a jeho privátní klíč.

Nasazení guestbook aplikace

Aplikace guestbooku 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 svou 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. Aplikaci používáme a nastavíme prostředky příchozího přenosu dat pro přístup k aplikaci prostřednictvím protokolu HTTP a HTTPS.

Pomocí následujících pokynů nasaďte aplikaci guestbooku.

  1. Stáhnout guestbook-all-in-one.yaml odsud
  2. Nasazení guestbook-all-in-one.yaml do clusteru AKS spuštěním příkazu
kubectl apply -f guestbook-all-in-one.yaml

guestbook Teď je aplikace nasazená.

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

Pokud chcete zpřístupnit aplikaci guestbooku, 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 služby Application Gateway.

Uložte výše uvedený prostředek příchozího přenosu dat jako ing-guestbook.yaml.

  1. Nasazení ing-guestbook.yaml spuštěním 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 služby Application Gateway.

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

Bez zadaného názvu hostitele

Bez zadání názvu hostitele je služba guestbook k dispozici ve všech názvech hostitelů odkazujících na aplikační bránu.

  1. Před nasazením příchozího přenosu dat je potřeba vytvořit tajný klíč Kubernetes pro hostování certifikátu a privátního klíče. Tajný kód Kubernetes můžete vytvořit spuštěním příkazu .

    kubectl create secret tls <guestbook-secret-name> --key <path-to-key> --cert <path-to-cert>
    
  2. Definujte následující příchozí přenos dat. V příchozím přenosu dat zadejte název tajného kódu v oddílu secretName .

    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
    

    Poznámka:

    Nahraďte <guestbook-secret-name> ve výše uvedeném prostředku příchozího přenosu dat názvem vašeho tajného kódu. Uložte výše uvedený prostředek příchozího přenosu dat do názvu ing-guestbook-tls.yamlsouboru .

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

    kubectl apply -f ing-guestbook-tls.yaml
    
  4. 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 příchozího přenosu dat, aby bylo možné použít vícenásobné konfigurace a služby PROTOKOLU TLS. Zadáním názvu hostitele je služba hostbooku k dispozici pouze na zadaném hostiteli.

  1. Definujte následující příchozí přenos dat. V příchozím přenosu dat zadejte název tajného kódu v oddílu secretName a odpovídajícím způsobem nahraďte název hostitele v oddílu hosts .

    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 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ď k dispozici na http i HTTPS pouze na zadaném hostiteli (<guestbook.contoso.com>v tomto příkladu).

Integrace s ostatními službami

Následující příchozí přenos dat umožňuje přidat do tohoto příchozího přenosu dat další cesty a tyto cesty přesměrovat do jiných služeb:

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