Kapsayıcılar için Application Gateway ile SSL boşaltma - Ağ Geçidi API'si
Bu belge, Ağ Geçidi API'sinden aşağıdaki kaynakları kullanan örnek bir uygulama ayarlamanıza yardımcı olur. Adımlar şunlar için sağlanır:
- Bir HTTPS dinleyicisi ile bir Ağ Geçidi kaynağı oluşturun.
- Arka uç hizmetine başvuran bir HTTPRoute oluşturun.
Background
Kapsayıcılar için Application Gateway, daha iyi arka uç performansı için SSL boşaltmayı etkinleştirir. Aşağıdaki örnek senaryoya bakın:
Önkoşullar
BYO dağıtım stratejisini izliyorsanız Kapsayıcılar için Application Gateway kaynaklarınızı ve ALB Denetleyicisi'ni ayarladığınızdan emin olun
ALB yönetilen dağıtım stratejisini izliyorsanız, ApplicationLoadBalancer özel kaynağı aracılığıyla ALB Denetleyicinizi ve Kapsayıcılar için Application Gateway kaynaklarınızı sağladığınızdan emin olun.
Örnek HTTPS uygulaması dağıtma TLS/SSL boşaltmayı göstermek üzere örnek bir web uygulaması oluşturmak için kümenize aşağıdaki deployment.yaml dosyasını uygulayın.
kubectl apply -f https://trafficcontrollerdocs.blob.core.windows.net/examples/https-scenario/ssl-termination/deployment.yaml
Bu komut kümenizde aşağıdakileri oluşturur:
- adlı bir ad alanı
test-infra
- ad alanında çağrılan
echo
test-infra
bir hizmet - ad alanında
test-infra
adlıecho
bir dağıtım - ad alanında
test-infra
adlılistener-tls-secret
bir gizli dizi
- adlı bir ad alanı
Gerekli Ağ Geçidi API'sini dağıtma
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
Not
ALB Denetleyicisi ARM'de Kapsayıcılar için Application Gateway kaynaklarını oluşturduğunda, bir ön uç kaynağı için şu adlandırma kuralını kullanır: fe-8< rastgele oluşturulan karakterler>
Azure'da oluşturulan ön ucun adını değiştirmek isterseniz kendi dağıtım stratejinizi getirin seçeneğini uygulamayı göz önünde bulundurun.
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ığından 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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin