Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu belge, Ağ Geçidi API'sinden aşağıdaki kaynakları kullanan örnek bir uygulama ayarlamanıza yardımcı olur. Aşağıdaki amaçlar için adımlar sağlanmıştır:
- Bir HTTPS dinleyicisi ile bir Ağ Geçidi kaynağı oluşturun.
- Arka uç hizmetine başvuran bir HTTPRoute oluşturun.
Arka plan
Kapsayıcılar için Application Gateway, daha iyi sunucu performansı sağlamak için SSL yük devretmeyi etkinleştirir. Aşağıdaki örnek senaryoya bakın:
Önkoşullar
Uyarı
Kapsayıcılar için olan Uygulama Ağ Geçidi sertifikaları, Kubernetes gizlilikleri olarak depolanmalıdır. Kapsayıcılar için Application Gateway sertifikaların kümede yerel olmasını gerektirdiğinden ve bunları dış birimlerden bağlayamayacağından Gizli Dizi Deposu CSI sürücüsü aracılığıyla Azure Key Vault tümleştirmesi desteklenmez. Otomatik sertifika yönetimi için Let's Encrypt ile cert-manager kullanmayı göz önünde bulundurun.
BYO dağıtım stratejisini izliyorsanız Kapsayıcılar için Application Gateway kaynaklarınızı ve ALB Denetleyicisi'ni (Eklenti veya Helm) ayarladığınızdan emin olun
ALB yönetilen dağıtım stratejisini izliyorsanız, ApplicationLoadBalancer özel kaynağı aracılığıyla ALB Denetleyicinizi (Eklenti veya Helm) ve Kapsayıcılar için Application Gateway kaynaklarını sağladığınızdan emin olun.
Örnek HTTPS uygulaması dağıtımı: TLS/SSL boşaltmayı göstermek için kümenizde örnek bir web uygulaması oluşturmak amacıyla aşağıdaki deployment.yaml dosyasını uygulayın.
kubectl apply -f https://raw.githubusercontent.com/MicrosoftDocs/azure-docs/refs/heads/main/articles/application-gateway/for-containers/examples/https-scenario/ssl-termination/deployment.yamlBu komut kümenizde aşağıdakileri oluşturur:
- adlı bir ad alanı
test-infra -
echoad alanındatest-infraolarak adlandırılan bir hizmet -
echoad alanındatest-infraadlı bir dağıtım -
listener-tls-secretad alanındatest-infraadında bir gizli
- adlı bir ad alanı
Gerekli Ağ Geçidi API kaynaklarını dağıtın.
Ağ Geçidi Oluşturma
kubectl apply -f - <<EOF apiVersion: gateway.networking.k8s.io/v1 kind: Gateway metadata: name: gateway-01 namespace: test-infra annotations: alb.networking.azure.io/alb-namespace: alb-test-infra alb.networking.azure.io/alb-name: alb-test spec: gatewayClassName: azure-alb-external listeners: - name: https-listener port: 443 protocol: HTTPS allowedRoutes: namespaces: from: Same tls: mode: Terminate certificateRefs: - kind : Secret group: "" name: listener-tls-secret EOF
Uyarı
ALB Denetleyicisi Azure Resource Manager'da Kapsayıcılar için Application Gateway kaynaklarını oluşturduğunda, bir ön uç kaynağı için aşağıdaki adlandırma kuralını kullanır: fe-<eight randomly generated characters>.
Azure'da oluşturulan ön uç kaynağının adını değiştirmek istiyorsanız , kendi dağıtım stratejinizi getirin seçeneğini izleyin.
Ağ geçidi kaynağı oluşturulduğunda durumun geçerli olduğundan, dinleyicinin Programlandığından ve ağ geçidine bir adres atandığından emin olun.
kubectl get gateway gateway-01 -n test-infra -o yaml
Başarılı ağ geçidi oluşturma işleminin örnek çıktısı.
status:
addresses:
- type: Hostname
value: xxxx.yyyy.alb.azure.com
conditions:
- lastTransitionTime: "2023-06-19T21:04:55Z"
message: Valid Gateway
observedGeneration: 1
reason: Accepted
status: "True"
type: Accepted
- lastTransitionTime: "2023-06-19T21:04:55Z"
message: Application Gateway For Containers resource has been successfully updated.
observedGeneration: 1
reason: Programmed
status: "True"
type: Programmed
listeners:
- attachedRoutes: 0
conditions:
- lastTransitionTime: "2023-06-19T21:04:55Z"
message: ""
observedGeneration: 1
reason: ResolvedRefs
status: "True"
type: ResolvedRefs
- lastTransitionTime: "2023-06-19T21:04:55Z"
message: Listener is accepted
observedGeneration: 1
reason: Accepted
status: "True"
type: Accepted
- lastTransitionTime: "2023-06-19T21:04:55Z"
message: Application Gateway For Containers resource has been successfully updated.
observedGeneration: 1
reason: Programmed
status: "True"
type: Programmed
name: https-listener
supportedKinds:
- group: gateway.networking.k8s.io
kind: HTTPRoute
Ağ geçidi oluşturulduktan sonra bir HTTPRoute kaynağı oluşturun.
kubectl apply -f - <<EOF
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: https-route
namespace: test-infra
spec:
parentRefs:
- name: gateway-01
rules:
- backendRefs:
- name: echo
port: 80
EOF
HTTPRoute kaynağı oluşturulduktan sonra, yolun Kabul Edildi ve Kapsayıcılar için Application Gateway kaynağının Programlandığıdan emin olun.
kubectl get httproute https-route -n test-infra -o yaml
Kapsayıcılar için Application Gateway kaynağının başarıyla güncelleştirildiğinden emin olun.
status:
parents:
- conditions:
- lastTransitionTime: "2023-06-19T22:18:23Z"
message: ""
observedGeneration: 1
reason: ResolvedRefs
status: "True"
type: ResolvedRefs
- lastTransitionTime: "2023-06-19T22:18:23Z"
message: Route is Accepted
observedGeneration: 1
reason: Accepted
status: "True"
type: Accepted
- lastTransitionTime: "2023-06-19T22:18:23Z"
message: Application Gateway For Containers resource has been successfully updated.
observedGeneration: 1
reason: Programmed
status: "True"
type: Programmed
controllerName: alb.networking.azure.io/alb-controller
parentRef:
group: gateway.networking.k8s.io
kind: Gateway
name: gateway-01
namespace: test-infra
Uygulamaya erişimi test etme
Artık ön uçta atanan FQDN aracılığıyla örnek uygulamamıza trafik göndermeye hazırız. FQDN'yi almak için aşağıdaki komutu kullanın.
fqdn=$(kubectl get gateway gateway-01 -n test-infra -o jsonpath='{.status.addresses[0].value}')
Bu FQDN'nin kümelenmesi, HTTPRoute'ta yapılandırıldığı gibi arka uçtan yanıt döndürmelidir.
curl --insecure https://$fqdn/
Tebrikler, ALB Denetleyicisi'ni yüklediniz, bir arka uç uygulaması dağıttınız ve kapsayıcılar için Application Gateway'e giriş yoluyla trafiği uygulamaya yönlendirdiniz.