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 80
adı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.
- Buradan indirin
guestbook-all-in-one.yaml
- 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.yaml
kaydedin.
Çalıştırarak dağıtın
ing-guestbook.yaml
:kubectl apply -f ing-guestbook.yaml
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.
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>
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ındaing-guestbook-tls.yaml
depolayın.komutunu çalıştırarak ing-guestbook-tls.yaml dağıtma
kubectl apply -f ing-guestbook-tls.yaml
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.
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
Komutunu çalıştırarak dağıtma
ing-guestbook-tls-sni.yaml
kubectl apply -f ing-guestbook-tls-sni.yaml
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