Application Gateway Giriş Denetleyicisi için Ek Açıklamalar
Kubernetes Giriş kaynağına rastgele anahtar/değer çiftleriyle ek açıklama eklenebilir. AGIC, Application Gateway özelliklerini programlayan ve Giriş YAML kullanılarak yapılandırılamayan ek açıklamalara dayanır. Giriş ek açıklamaları, giriş kaynağından türetilen tüm HTTP ayarlarına, arka uç havuzlarına ve dinleyicilere uygulanır.
Desteklenen ek açıklamaların listesi
Bir Giriş kaynağının AGIC tarafından gözlemlenmesi için ile kubernetes.io/ingress.class: azure/application-gateway
ek açıklama eklenmelidir. Ancak o zaman AGIC söz konusu Giriş kaynağıyla çalışır.
Ek Açıklama Anahtarı | Değer Türü | Varsayılan Değer | İzin Verilen Değerler |
---|---|---|---|
appgw.ingress.kubernetes.io/backend-path-prefix | string |
nil |
|
appgw.ingress.kubernetes.io/ssl-redirect | bool |
false |
|
appgw.ingress.kubernetes.io/connection-draining | bool |
false |
|
appgw.ingress.kubernetes.io/connection-draining-timeout | int32 (saniye) |
30 |
|
appgw.ingress.kubernetes.io/cookie-based-affinity | bool |
false |
|
appgw.ingress.kubernetes.io/request-timeout | int32 (saniye) |
30 |
|
appgw.ingress.kubernetes.io/use-private-ip | bool |
false |
|
appgw.ingress.kubernetes.io/backend-protocol | string |
http |
http , https |
appgw.ingress.kubernetes.io/rewrite-rule-set | string |
nil |
Arka Uç Yolu Ön Eki
Aşağıdaki ek açıklama, bir giriş kaynağında belirtilen arka uç yolunun bu ek açıklamada belirtilen ön ek ile yeniden yazılmasını sağlar. Kullanıcıların, bir giriş kaynağındaki bir hizmeti kullanıma açmak için kullanılan uç nokta adlarından farklı olan hizmetleri kullanıma sunmalarına olanak tanır.
Kullanım
appgw.ingress.kubernetes.io/backend-path-prefix: <path prefix>
Örnek
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: go-server-ingress-bkprefix
namespace: test-ag
annotations:
kubernetes.io/ingress.class: azure/application-gateway
appgw.ingress.kubernetes.io/backend-path-prefix: "/test/"
spec:
rules:
- http:
paths:
- path: /hello/
pathType: Exact
backend:
service:
name: go-server-service
port:
number: 80
Önceki örnekte, ek açıklama appgw.ingress.kubernetes.io/backend-path-prefix: "/test/"
ile adlı go-server-ingress-bkprefix
bir giriş kaynağı tanımlamıştınız. Ek açıklama, uygulama ağ geçidine yolu için bir yol ön eki geçersiz kılması olan bir HTTP ayarı oluşturmasını /hello
/test/
söyler.
Dekont
Yukarıdaki örnekte yalnızca bir kural tanımlanmıştır. Ancak, ek açıklamalar giriş kaynağının tamamı için geçerlidir, bu nedenle bir kullanıcı birden çok kural tanımladıysa, arka uç yolu ön eki belirtilen yolların her biri için ayarlanır. Bir kullanıcı farklı yol ön eklerine sahip farklı kurallar istiyorsa (aynı hizmet için bile), farklı giriş kaynakları tanımlaması gerekir.
TLS Yeniden Yönlendirme
Application Gateway , HTTP URL'lerini otomatik olarak HTTPS karşılıklarına yönlendirecek şekilde yapılandırılabilir . Bu ek açıklama mevcut olduğunda ve TLS düzgün yapılandırıldığında, Kubernetes Giriş denetleyicisi yeniden yönlendirme yapılandırmasıyla bir yönlendirme kuralı oluşturur ve değişiklikleri Application Gateway'inize uygular. Oluşturulan yeniden yönlendirme HTTP 301 Moved Permanently
olacaktır.
Kullanım
appgw.ingress.kubernetes.io/ssl-redirect: "true"
Örnek
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: go-server-ingress-redirect
namespace: test-ag
annotations:
kubernetes.io/ingress.class: azure/application-gateway
appgw.ingress.kubernetes.io/ssl-redirect: "true"
spec:
tls:
- hosts:
- www.contoso.com
secretName: testsecret-tls
rules:
- host: www.contoso.com
http:
paths:
- backend:
service:
name: websocket-repeater
port:
number: 80
Bağlan Boşaltma
connection-draining
: Bu ek açıklama, bağlantı boşaltmanın etkinleştirilip etkinleştirilmeyeceğini belirtmemize olanak tanır.
connection-draining-timeout
: Bu ek açıklama, Application Gateway'in boşaltılan arka uç uç noktasına yönelik istekleri sonlandırdığı bir zaman aşımı belirtmemize olanak tanır.
Kullanım
appgw.ingress.kubernetes.io/connection-draining: "true"
appgw.ingress.kubernetes.io/connection-draining-timeout: "60"
Örnek
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: go-server-ingress-drain
namespace: test-ag
annotations:
kubernetes.io/ingress.class: azure/application-gateway
appgw.ingress.kubernetes.io/connection-draining: "true"
appgw.ingress.kubernetes.io/connection-draining-timeout: "60"
spec:
rules:
- http:
paths:
- path: /hello/
pathType: Exact
backend:
service:
name: go-server-service
port:
number: 80
Tanımlama Bilgisi Tabanlı Benzimliği
Aşağıdaki ek açıklama, tanımlama bilgisi tabanlı benzitenin etkinleştirilip etkinleştirilmeyeceğini belirtmenize olanak tanır.
Kullanım
appgw.ingress.kubernetes.io/cookie-based-affinity: "true"
Örnek
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: go-server-ingress-affinity
namespace: test-ag
annotations:
kubernetes.io/ingress.class: azure/application-gateway
appgw.ingress.kubernetes.io/cookie-based-affinity: "true"
spec:
rules:
- http:
paths:
- path: /hello/
pathType: Exact
backend:
service:
name: go-server-service
port:
number: 80
İstek Zaman Aşımı
Aşağıdaki ek açıklama, istek zaman aşımını saniyeler içinde belirtmenize olanak tanır ve yanıt alınmazsa Application Gateway istekte başarısız olur.
Kullanım
appgw.ingress.kubernetes.io/request-timeout: "20"
Örnek
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: go-server-ingress-timeout
namespace: test-ag
annotations:
kubernetes.io/ingress.class: azure/application-gateway
appgw.ingress.kubernetes.io/request-timeout: "20"
spec:
rules:
- http:
paths:
- path: /hello/
pathType: Exact
backend:
service:
name: go-server-service
port:
number: 80
Özel IP kullanma
Aşağıdaki ek açıklama, bu uç noktanın Application Gateway'in Özel IP'sinde kullanıma açılıp sürülmeyeceğini belirtmenize olanak tanır.
Dekont
- Application Gateway aynı bağlantı noktasında birden çok IP'yi desteklemez (örnek: 80/443). Ek açıklama ve başka bir ek açıklama
appgw.ingress.kubernetes.io/use-private-ip: "false"
ileappgw.ingress.kubernetes.io/use-private-ip: "true"
HTTP
giriş, Application Gateway'i güncelleştirirken AGIC'nin başarısız olmasına neden olur. - Özel IP'ye sahip olmayan Application Gateway için ile girişler
appgw.ingress.kubernetes.io/use-private-ip: "true"
yoksayılır. Bu, uyarı içeren girişler için denetleyici günlüklerine ve giriş olaylarınaNoPrivateIP
yansıtılır.
Kullanım
appgw.ingress.kubernetes.io/use-private-ip: "true"
Örnek
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: go-server-ingress-timeout
namespace: test-ag
annotations:
kubernetes.io/ingress.class: azure/application-gateway
appgw.ingress.kubernetes.io/use-private-ip: "true"
spec:
rules:
- http:
paths:
- path: /hello/
pathType: Exact
backend:
service:
name: go-server-service
port:
number: 80
Arka Uç Protokolü
Aşağıdaki ek açıklama, Application Gateway'in podlarla iletişim kurarken kullanması gereken protokolü belirtmenize olanak tanır. Desteklenen Protokoller ve https
'tirhttp
.
Dekont
Application Gateway'de otomatik olarak imzalanan sertifikalar destekleniyor olsa da şu anda AGIC yalnızca podların iyi bilinen bir CA tarafından imzalanan bir sertifikayı kullandığında destekler https
.
Podlarda HTTPS ile 80 numaralı bağlantı noktasını ve HTTP ile 443 numaralı bağlantı noktasını kullanmayın.
Kullanım
appgw.ingress.kubernetes.io/backend-protocol: "https"
Örnek
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: go-server-ingress-timeout
namespace: test-ag
annotations:
kubernetes.io/ingress.class: azure/application-gateway
appgw.ingress.kubernetes.io/backend-protocol: "https"
spec:
rules:
- http:
paths:
- path: /hello/
pathType: Exact
backend:
service:
name: go-server-service
port:
number: 443
Kural Kümesini Yeniden Yaz
Aşağıdaki ek açıklama, mevcut bir yeniden yazma kuralı kümesini ilgili istek yönlendirme kuralına atamanızı sağlar.
Kullanım
appgw.ingress.kubernetes.io/rewrite-rule-set: <rewrite rule set name>
Örnek
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: go-server-ingress-bkprefix
namespace: test-ag
annotations:
kubernetes.io/ingress.class: azure/application-gateway
appgw.ingress.kubernetes.io/rewrite-rule-set: add-custom-response-header
spec:
rules:
- http:
paths:
- path: /
pathType: Exact
backend:
service:
name: go-server-service
port:
number: 8080