Share via


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

Bu öğreticiler, HTTP veya HTTPS üzerinden Azure Uygulaması lication Gateway aracılığıyla örnek bir Kubernetes hizmetini kullanıma sunma amacıyla Kubernetes Giriş Kaynaklarının kullanımını göstermeye yardımcı olur.

İpucu

Ayrıca bkz. Kapsayıcılar için Application Gateway nedir?

Önkoşullar

  • Yüklü ingress-azure helm grafiği.
    • Greenfield Dağıtımı: Sıfırdan başlıyorsanız, Application Gateway ile AKS kümesi dağıtma ve AKS kümesine uygulama ağ geçidi giriş denetleyicisi 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'iniz varsa AKS kümesine uygulama ağ geçidi giriş denetleyicisi yüklemek için bu yönergelere bakın.
  • Bu uygulamada HTTPS kullanmak istiyorsanız bir x509 sertifikasına ve özel anahtarına ihtiyacınız vardır.

Uygulamayı dağıtma guestbook

Konuk defteri uygulaması, 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 80adıyla frontend 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ı ayarlarız.

Konuk defteri uygulamasını dağıtmak için aşağıdaki yönergeleri kullanın.

  1. Buradan indirin guestbook-all-in-one.yaml
  2. komutunu çalıştırarak AKS kümenize dağıtma guestbook-all-in-one.yaml
kubectl apply -f guestbook-all-in-one.yaml

Şimdi, guestbook uygulama dağıtıldı.

HTTP üzerinden hizmetleri kullanıma sunma

Konuk defteri uygulamasını kullanıma açmak 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ş, dağıtımın frontend hizmetini Application Gateway'in guestbook-all-in-one varsayılan arka ucu olarak kullanıma sunar.

Yukarıdaki giriş kaynağını olarak ing-guestbook.yamlkaydedin.

  1. Ç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'in genel adresini ziyaret ederek kullanılabilirliği de kontrol edebilirsiniz.

HIZMETLERI HTTPS üzerinden kullanıma sunma

Belirtilen ana bilgisayar adı olmadan

Konak adı belirtilmeden, konuk defteri hizmeti uygulama ağ geçidine işaret eden tüm konak adlarında kullanılabilir.

  1. Girişi dağıtmadan önce sertifikayı ve özel anahtarı barındırmak için bir kubernetes gizli dizisi oluşturmanız gerekir. komutunu çalıştırarak kubernetes gizli dizisi oluşturabilirsiniz

    kubectl create secret tls <guestbook-secret-name> --key <path-to-key> --cert <path-to-cert>
    
  2. Aşağıdaki girişi tanımlayın. Giriş bölümünde gizli dizinin secretName adını belirtin.

    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
    

    Not

    Yukarıdaki Giriş Kaynağı'nda değerini gizli dizinizin adıyla değiştirin <guestbook-secret-name> . Yukarıdaki Giriş Kaynağını bir dosya adında ing-guestbook-tls.yamldepolayın.

  3. komutunu çalıştırarak ing-guestbook-tls.yaml dağıtma

    kubectl apply -f ing-guestbook-tls.yaml
    
  4. 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

TLS yapılandırmalarını ve hizmetlerini çok daha fazla eklemek için girişte ana bilgisayar adını da belirtebilirsiniz. Konak adı belirtildiğinde, konuk defteri hizmeti yalnızca belirtilen konakta kullanılabilir.

  1. Aşağıdaki girişi tanımlayın. Girişte bölümünde gizli dizinin secretName adını belirtin ve bölümdeki konak adını hosts buna göre 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. Komutunu çalıştırarak dağıtma 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 (<guestbook.contoso.com>bu örnekte) kullanılabilir.

Diğer hizmetlerle tümleştirme

Aşağıdaki giriş, bu girişe başka yollar eklemenize ve bu yolları diğer hizmetlere yeniden yönlendirmenize olanak tanır:

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