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 adımlar şunlar için verilmiştir:
- Bir HTTPS dinleyicisi ile bir Ağ Geçidi kaynağı oluşturun.
- Arka uç hizmetine başvuran bir HTTPRoute kaynağı oluşturun.
- HTTPRoute'ta başvuruda bulunan arka uç hizmeti için bir istemci ve CA sertifikasına sahip bir BackendTLSPolicy kaynağı oluşturun.
Arka plan
Karşılıklı Aktarım Katmanı Güvenliği (MTLS), iletişimleri şifrelemek ve hizmet istemcilerini tanımlamak için sertifikaları kullanan bir işlemdir. Bu, arka uç iş yüklerinin yalnızca kimliği doğrulanmış cihazlardan gelen bağlantılara güvenerek güvenlik duruşunu daha da artırmasını sağlar.
Aşağıdaki şekle 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 (Eklenti veya Helm) ayarladığınızdan emin olun.
ALB yönetilen dağıtım stratejisini izliyorsanız, ALB Denetleyicinizi (Eklenti veya Helm) ve ApplicationLoadBalancer özel kaynağı aracılığıyla Kapsayıcılar için Application Gateway kaynaklarını sağladığınızdan emin olun.
Örnek HTTP uygulamasını dağıtma:
Örnek bir web uygulaması oluşturmak ve arka uç karşılıklı kimlik doğrulamasını (mTLS) göstermek için örnek gizli dizileri dağıtmak için kümenize 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/end-to-end-ssl-with-backend-mtls/deployment.yamlBu komut kümenizde aşağıdakileri oluşturur:
- "
test-infraadlı bir ad alanı" -
mtls-appisim alanındakitest-infraadlı bir hizmet -
mtls-appad alanındatest-infraadlı bir dağıtım -
mtls-app-nginx-cmad alanındatest-infraadlı bir yapılandırma eşlemesi -
backend.comad alanındafrontend.com,gateway-client-cert,ca.bundlevetest-infraadı verilen dört sır
- "
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: frontend.com
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şturulduktan sonra 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: IPAddress
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: mtls-app
port: 443
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 durumunun 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
Arka Uç TLSPolicy Oluştur
kubectl apply -f - <<EOF
apiVersion: alb.networking.azure.io/v1
kind: BackendTLSPolicy
metadata:
name: mtls-app-tls-policy
namespace: test-infra
spec:
targetRef:
group: ""
kind: Service
name: mtls-app
namespace: test-infra
default:
sni: backend.com
ports:
- port: 443
clientCertificateRef:
name: gateway-client-cert
group: ""
kind: Secret
verify:
caCertificateRef:
name: ca.bundle
group: ""
kind: Secret
subjectAltName: backend.com
EOF
BackendTLSPolicy nesnesi oluşturulduktan sonra, ilkenin geçerli olduğundan emin olmak için nesnenin durumunu denetleyin:
kubectl get backendtlspolicy -n test-infra mtls-app-tls-policy -o yaml
Geçerli BackendTLSPolicy nesne oluşturma örneği:
status:
conditions:
- lastTransitionTime: "2023-06-29T16:54:42Z"
message: Valid BackendTLSPolicy
observedGeneration: 1
reason: Accepted
status: "True"
type: Accepted
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.