Application Gateway kullanarak HTTP veya HTTPS üzerinden AKS hizmetini kullanıma sunma

Bu makalede, HTTP veya HTTPS üzerinden Azure Application Gateway aracılığıyla örnek bir Azure Kubernetes Service (AKS) hizmetini kullanıma sunma amacıyla Kubernetes giriş kaynaklarının kullanımı gösterilmektedir.

Tip

Kubernetes giriş çözümünüz için Application Gateway for Containers'ı göz önünde bulundurun.

Prerequisites

  • Yüklü ingress-azure Helm şeması:
    • Yeşil alan dağıtımı: Sıfırdan başlıyorsanız, Application Gateway ile AKS kümesi dağıtma ve AKS kümesine Application Gateway Giriş Denetleyicisi'ni (AGIC) yükleme adımlarını özetleyen bu yükleme yönergelerine bakın.
    • Brownfield dağıtımı: Mevcut bir AKS kümeniz ve Application Gateway dağıtımınız varsa AKS kümesine AGIC yüklemek için bu yönergelere bakın.
  • Bu uygulamada HTTPS kullanmak istiyorsanız bir x509 sertifikası ve özel anahtarı.

Konuk defteri uygulamasını dağıtın.

Uygulama guestbook , web kullanıcı arabirimi ön ucu, arka uç ve Redis veritabanından oluşan kurallı bir Kubernetes uygulamasıdır.

Varsayılan olarak, guestbook uygulamasını bağlantı noktasında frontendadıyla 80 bir hizmet aracılığıyla kullanıma sunar. Kubernetes giriş kaynağı olmadan hizmete AKS kümesi dışından erişilemez. Uygulamayı kullanır ve HTTP ve HTTPS aracılığıyla uygulamaya erişmek için giriş kaynaklarını ayarlarsınız.

guestbook uygulamasını dağıtmak için:

  1. guestbook-all-in-one.yaml indirin.

  2. Şu komutu çalıştırarak AKS kümenize dağıtın guestbook-all-in-one.yaml :

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

HTTP üzerinden hizmetleri kullanıma sunma

Uygulamayı kullanıma açmak guestbook için aşağıdaki giriş kaynağını kullanın:

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

Bu giriş, frontend dağıtımının guestbook-all-in-one hizmetini, Application Gateway dağıtımının varsayılan arka ucu olarak kullanıma sunar.

Önceki giriş kaynağını olarak ing-guestbook.yamlkaydedin:

  1. Şu komutu çalıştırarak dağıtın ing-guestbook.yaml :

    kubectl apply -f ing-guestbook.yaml
    
  2. Dağıtım durumu için giriş denetleyicisinin günlüğünü denetleyin.

guestbook Artık uygulama kullanılabilir olmalıdır. Application Gateway dağıtımının genel adresini ziyaret ederek kullanılabilirliği de kontrol edebilirsiniz.

HIZMETLERI HTTPS üzerinden kullanıma sunma

Belirtilmiş bir ana bilgisayar adı olmadan

Bir konak adı belirtmezseniz, guestbook hizmet Application Gateway dağıtımına işaret eden tüm konak adlarında kullanılabilir.

  1. Giriş kaynağını dağıtmadan önce sertifikayı ve özel anahtarı barındırmak için bir Kubernetes gizli anahtarı oluşturun.

    kubectl create secret tls <guestbook-secret-name> --key <path-to-key> --cert <path-to-cert>
    
  2. Aşağıdaki giriş kaynağını tanımlayın. secretName bölümünde <guestbook-secret-name> değerini gizli dizinizin adıyla değiştirin.

    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. Giriş kaynağını adlı ing-guestbook-tls.yamlbir dosyada depolayın.

  4. Şu komutu çalıştırarak dağıtın ing-guestbook-tls.yaml :

    kubectl apply -f ing-guestbook-tls.yaml
    
  5. Dağıtım durumu için giriş denetleyicisinin günlüğünü denetleyin.

guestbook Artık uygulama hem HTTP hem de HTTPS üzerinde kullanılabilir.

Belirtilen ana bilgisayar adıyla

Giriş kaynağındaki ana bilgisayar adını, TLS yapılandırmaları ve hizmetleri çoğullamak için de belirtebilirsiniz. Bir konak adı belirttiğinizde guestbook , hizmet yalnızca belirtilen konakta kullanılabilir.

  1. Aşağıdaki giriş kaynağını tanımlayın. secretName bölümünde <guestbook-secret-name> değerini gizli dizinizin adıyla değiştirin. hosts ve host bölümlerinde <guestbook.contoso.com> öğesini ana bilgisayar adınız ile değiştirin.

    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. Şu komutu çalıştırarak dağıtın ing-guestbook-tls-sni.yaml :

    kubectl apply -f ing-guestbook-tls-sni.yaml
    
  3. Dağıtım durumu için giriş denetleyicisinin günlüğünü denetleyin.

guestbook Artık uygulama hem HTTP hem de HTTPS üzerinde, yalnızca belirtilen konakta kullanılabilir.

Diğer hizmetlerle tümleştirme

Yol eklemek ve bu yolları diğer hizmetlere yeniden yönlendirmek için aşağıdaki giriş kaynağını kullanın:

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