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-gatewayek 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 Permanentlyolacaktı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

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" ile appgw.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ına NoPrivateIP 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