Udostępnij za pośrednictwem


Adnotacje dla kontrolera ruchu przychodzącego usługi Application Gateway

Zasób ruchu przychodzącego Kubernetes może być dodawać adnotacje do dowolnych par klucz/wartość. Program AGIC opiera się na adnotacjach do programowania funkcji usługi Application Gateway, które nie można konfigurować przy użyciu kodu YAML ruchu przychodzącego. Adnotacje ruchu przychodzącego są stosowane do wszystkich ustawień protokołu HTTP, pul zaplecza i odbiorników pochodzących z zasobu ruchu przychodzącego.

Lista obsługiwanych adnotacji

Aby zasób ruchu przychodzącego był obserwowany przez AGIC, musi być oznaczony adnotacją kubernetes.io/ingress.class: azure/application-gateway. Dopiero wtedy AGIC współpracuje z danym zasobem Ruchu przychodzącego.

Klucz adnotacji Typ wartości: Wartość domyślna Dozwolone wartości
appgw.ingress.kubernetes.io/backend-path-prefix string nil
appgw.ingress.kubernetes.io/backend-hostname string nil
appgw.ingress.kubernetes.io/health-probe-hostname string 127.0.0.1
appgw.ingress.kubernetes.io/health-probe-port int32 80
appgw.ingress.kubernetes.io/health-probe-path string /
appgw.ingress.kubernetes.io/health-probe-status-code string 200-399
appgw.ingress.kubernetes.io/health-probe-interval int32 30 (sekundy)
appgw.ingress.kubernetes.io/health-probe-timeout int32 30 (sekundy)
appgw.ingress.kubernetes.io/health-probe-unhealthy-threshold int32 3
appgw.ingress.kubernetes.io/ssl-redirect bool false
appgw.ingress.kubernetes.io/connection-draining bool false
appgw.ingress.kubernetes.io/connection-draining-timeout int32 (sekundy) 30
appgw.ingress.kubernetes.io/use-private-ip bool false
appgw.ingress.kubernetes.io/override-frontend-port bool false
appgw.ingress.kubernetes.io/cookie-based-affinity bool false
appgw.ingress.kubernetes.io/request-timeout int32 (sekundy) 30
appgw.ingress.kubernetes.io/use-private-ip bool false
appgw.ingress.kubernetes.io/backend-protocol string http http, https
appgw.ingress.kubernetes.io/hostname-extension string nil
appgw.ingress.kubernetes.io/waf-policy-for-path string nil
appgw.ingress.kubernetes.io/appgw-ssl-certificate string nil
appgw.ingress.kubernetes.io/appgw-ssl-profile string nil
appgw.ingress.kubernetes.io/appgw-trusted-root-certificate string nil
appgw.ingress.kubernetes.io/rewrite-rule-set string nil
appgw.ingress.kubernetes.io/rewrite-rule-set-custom-resource
appgw.ingress.kubernetes.io/rule-priority int32 nil

Prefiks ścieżki zaplecza

Poniższa adnotacja umożliwia przepisanie ścieżki zaplecza określonej w zasobie ruchu przychodzącego z prefiksem określonym w tej adnotacji. Umożliwia użytkownikom uwidacznienie usług, których punkty końcowe są inne niż nazwy punktów końcowych używanych do uwidaczniania usługi w zasobie ruchu przychodzącego.

Użycie

appgw.ingress.kubernetes.io/backend-path-prefix: <path prefix>

Przykład

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

W poprzednim przykładzie zdefiniowano zasób ruchu przychodzącego o nazwie go-server-ingress-bkprefix z adnotacją appgw.ingress.kubernetes.io/backend-path-prefix: "/test/". Adnotacja informuje bramę aplikacji o utworzeniu ustawienia HTTP, które ma zastępowanie prefiksu ścieżki dla ścieżki /hello do /test/.

Uwaga

W powyższym przykładzie zdefiniowano tylko jedną regułę. Jednak adnotacje mają zastosowanie do całego zasobu ruchu przychodzącego, więc jeśli użytkownik zdefiniował wiele reguł, prefiks ścieżki zaplecza zostanie skonfigurowany dla każdej z określonych ścieżek. Jeśli użytkownik chce różnych reguł z różnymi prefiksami ścieżki (nawet dla tej samej usługi), musi zdefiniować różne zasoby ruchu przychodzącego.

Nazwa hosta zaplecza

Ta adnotacja umożliwia określenie nazwy hosta, której usługa Application Gateway powinna używać podczas rozmowy z zasobnikami.

Użycie

appgw.ingress.kubernetes.io/backend-hostname: "internal.example.com"

Przykład

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-hostname: "internal.example.com"
spec:
  rules:
  - http:
      paths:
      - path: /hello/
        backend:
          service:
            name: store-service
            port:
              number: 80
        pathType: Exact

Niestandardowa sonda kondycji

Usługę Application Gateway można skonfigurować do wysyłania niestandardowych sond kondycji do puli adresów zaplecza. Gdy te adnotacje są obecne, kontroler ruchu przychodzącego Kubernetes tworzy niestandardową sondę do monitorowania aplikacji zaplecza i stosuje zmiany do bramy aplikacji.

health-probe-hostname: Ta adnotacja umożliwia niestandardową nazwę hosta w sondze kondycji.
health-probe-port: Ta adnotacja konfiguruje niestandardowy port sondy kondycji.
health-probe-path: Ta adnotacja definiuje ścieżkę dla sondy kondycji.
health-probe-status-code: Ta adnotacja umożliwia sondie kondycji akceptowanie różnych kodów stanu HTTP.
health-probe-interval: Ta adnotacja definiuje interwał uruchamiany przez sondę kondycji.
health-probe-timeout: Ta adnotacja definiuje czas oczekiwania sondy kondycji na odpowiedź przed niepowodzeniem sondy.
health-probe-unhealthy-threshold: Ta adnotacja określa, ile sond kondycji musi zakończyć się niepowodzeniem, aby zaplecze było oznaczone jako w złej kondycji.

Użycie

appgw.ingress.kubernetes.io/health-probe-hostname: "contoso.com"
appgw.ingress.kubernetes.io/health-probe-port: 80
appgw.ingress.kubernetes.io/health-probe-path: "/"
appgw.ingress.kubernetes.io/health-probe-status-code: "100-599"
appgw.ingress.kubernetes.io/health-probe-interval: 30
appgw.ingress.kubernetes.io/health-probe-timeout: 30
appgw.ingress.kubernetes.io/health-probe-unhealthy-threshold: 2

Przykład

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress
  namespace: test-ag
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/health-probe-hostname: "contoso.com"
    appgw.ingress.kubernetes.io/health-probe-port: 81
    appgw.ingress.kubernetes.io/health-probe-path: "/probepath"
    appgw.ingress.kubernetes.io/health-probe-status-code: "100-599"
    appgw.ingress.kubernetes.io/health-probe-interval: 31
    appgw.ingress.kubernetes.io/health-probe-timeout: 31
    appgw.ingress.kubernetes.io/health-probe-unhealthy-threshold: 2
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 80

Przekierowanie PROTOKOŁU TLS

Usługę Application Gateway można skonfigurować tak, aby automatycznie przekierowywała adresy URL HTTP do swoich odpowiedników HTTPS. Gdy ta adnotacja jest obecna i protokół TLS jest prawidłowo skonfigurowany, kontroler ruchu przychodzącego Kubernetes tworzy regułę routingu z konfiguracją przekierowania i stosuje zmiany w usłudze Application Gateway. Utworzone przekierowanie będzie adresem HTTP 301 Moved Permanently.

Użycie

appgw.ingress.kubernetes.io/ssl-redirect: "true"

Przykład

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

Opróżnianie połączenia

connection-draining: Ta adnotacja pozwala określić, czy włączyć opróżnianie połączeń. connection-draining-timeout: Ta adnotacja umożliwia określenie limitu czasu, po którym usługa Application Gateway kończy żądania do punktu końcowego opróżniania zaplecza.

Użycie

appgw.ingress.kubernetes.io/connection-draining: "true"
appgw.ingress.kubernetes.io/connection-draining-timeout: "60"

Przykład

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

Poniższa adnotacja umożliwia określenie, czy włączyć koligację opartą na plikach cookie.

Użycie

appgw.ingress.kubernetes.io/cookie-based-affinity: "true"

Przykład

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

Limit czasu żądania

Poniższa adnotacja umożliwia określenie limitu czasu żądania w sekundach, po którym usługa Application Gateway zakończy się niepowodzeniem żądania, jeśli odpowiedź nie zostanie odebrana.

Użycie

appgw.ingress.kubernetes.io/request-timeout: "20"

Przykład

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

Korzystanie z prywatnego adresu IP

Poniższa adnotacja umożliwia określenie, czy uwidocznić ten punkt końcowy w prywatnym adresie IP usługi Application Gateway.

Uwaga

  • W przypadku usługi Application Gateway, która nie ma prywatnego adresu IP, ruch przychodzący z usługą appgw.ingress.kubernetes.io/use-private-ip: "true" jest ignorowany. Jest to odzwierciedlone w dziennikach kontrolera i zdarzeniach ruchu przychodzącego dla tych ruchu przychodzącego z NoPrivateIP ostrzeżeniem.

Użycie

appgw.ingress.kubernetes.io/use-private-ip: "true"

Przykład

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-privateip
  namespace: test-ag
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/use-private-ip: "true"
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 80

Zastąpij port frontonu

Adnotacja umożliwia skonfigurowanie odbiornika frontonu do używania różnych portów innych niż 80/443 dla protokołu http/https.

Jeśli port znajduje się w autoryzowanym zakresie bramy aplikacji (1 – 64999), ten odbiornik zostanie utworzony na tym określonym porcie. Jeśli nieprawidłowy port lub żaden port nie jest ustawiony w adnotacji, konfiguracja powróci domyślnie 80 lub 443.

Użycie

appgw.ingress.kubernetes.io/override-frontend-port: "port"

Przykład

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-overridefrontendport
  namespace: test-ag
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/override-frontend-port: "8080"
spec:
  rules:
  - http:
      paths:
      - path: /hello/
        backend:
          service:
            name: store-service
            port:
              number: 80
        pathType: Exact

Uwaga

Żądanie zewnętrzne będzie musiało być kierowane http://somehost:8080 zamiast http://somehost.

Protokół zaplecza

Poniższa adnotacja umożliwia określenie protokołu, którego usługa Application Gateway powinna używać podczas komunikowania się z zasobnikami. Obsługiwane protokoły to http i https.

Uwaga

Certyfikaty z podpisem własnym są obsługiwane w usłudze Application Gateway, ale obecnie program AGIC obsługuje https tylko wtedy, gdy zasobniki korzystają z certyfikatu podpisanego przez dobrze znany urząd certyfikacji.

Nie używaj portu 80 z protokołem HTTPS i portem 443 z protokołem HTTP w zasobnikach.

Użycie

appgw.ingress.kubernetes.io/backend-protocol: "https"

Przykład

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: /
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 443

Rozszerzenie nazwy hosta

Usługę Application Gateway można skonfigurować tak, aby akceptowała wiele nazw hostów. Adnotacja o zakresie nazwy hosta pozwala na to, umożliwiając zdefiniowanie wielu nazw hostów, w tym nazw hostów wieloznacznych. Spowoduje to dołączenie nazw hostów do nazwy FQDN zdefiniowanej w adresie spec.rules.host ruchu przychodzącego na odbiorniku frontonu, tak aby był skonfigurowany jako odbiornik z wieloma lokacjami.

Użycie

appgw.ingress.kubernetes.io/hostname-extension: "hostname1, hostname2"

Przykład

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-multisite
  namespace: test-ag
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/hostname-extension: "hostname1, hostname2"
spec:
  rules:
  - host: contoso.com
    http:
      paths:
      - path: /
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 443

Uwaga

W powyższym przykładzie odbiornik zostanie skonfigurowany do akceptowania ruchu dla nazw hostów "hostname1.contoso.com" i "hostname2.contoso.com"

Zasady zapory aplikacji internetowej dla ścieżki

Ta adnotacja umożliwia dołączenie już utworzonych zasad zapory aplikacji internetowej do ścieżek listy dla hosta w zasobie ruchu przychodzącego Kubernetes, który jest adnotacją.

Użycie

appgw.ingress.kubernetes.io/waf-policy-for-path: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SampleRG/providers/Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies/AGICWAFPolcy"

Przykład

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ad-server-ingress
  namespace: commerce
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/waf-policy-for-path: "/subscriptions/abcd/resourceGroups/rg/providers/Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies/adserver"
spec:
  rules:
  - http:
      paths:
      - path: /ad-server
        backend:
          service:
            name: ad-server
            port:
              number: 80
        pathType: Exact
      - path: /auth
        backend:
          service:
            name: auth-server
            port:
              number: 80
        pathType: Exact

Uwaga

Zasady zapory aplikacji internetowej zostaną zastosowane zarówno do adresów URL /ad-server, jak i /auth.

Certyfikat SSL usługi Application Gateway

Certyfikat SSL można skonfigurować do usługi Application Gateway z lokalnego pliku certyfikatu PFX lub odwołania do niewersyjnego identyfikatora wpisu tajnego usługi Azure Key Vault. Gdy adnotacja jest obecna z nazwą certyfikatu i certyfikat jest wstępnie zainstalowany w usłudze Application Gateway, kontroler ruchu przychodzącego Kubernetes utworzy regułę routingu z odbiornikiem HTTPS i zastosuje zmiany do usługi App Gateway. Adnotacja appgw-ssl-certificate może być również używana razem z adnotacją ssl-redirect w przypadku przekierowania SSL.

Aby uzyskać więcej informacji, zapoznaj się z funkcją appgw-ssl-certificate.

Uwaga

Adnotacja "appgw-ssl-certificate" zostanie zignorowana, gdy specyfikacja protokołu TLS jest definiowana w ruchu przychodzącym w tym samym czasie. Jeśli użytkownik chce różnych certyfikatów z różnymi hostami (zakończenie certyfikatu z wieloma protokołami TLS), należy zdefiniować różne zasoby ruchu przychodzącego.

Użycie

appgw.ingress.kubernetes.io/appgw-ssl-certificate: "name-of-appgw-installed-certificate"

Przykład

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-certificate
  namespace: test-ag
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/appgw-ssl-certificate: "name-of-appgw-installed-certificate"
spec:
  rules:
  - host: www.contoso.com
    http:
      paths:
      - backend:
          service:
            name: websocket-repeater
            port:
              number: 80

Profil SSL usługi Application Gateway

Użytkownicy mogą skonfigurować profil ssl w usłudze Application Gateway na odbiornik. Gdy adnotacja jest obecna z nazwą profilu i profil jest wstępnie zainstalowany w usłudze Application Gateway, kontroler ruchu przychodzącego Kubernetes utworzy regułę routingu z odbiornikiem HTTPS i zastosuje zmiany w usłudze App Gateway.

Użycie

appgw.ingress.kubernetes.io/appgw-ssl-certificate: "name-of-appgw-installed-certificate"
appgw.ingress.kubernetes.io/appgw-ssl-profile: "SampleSSLProfile"

Przykład

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-certificate
  namespace: test-ag
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/appgw-ssl-certificate: "name-of-appgw-installed-certificate"
    appgw.ingress.kubernetes.io/appgw-ssl-profile: "SampleSSLProfile"
spec:
  rules:
  - host: www.contoso.com
    http:
      paths:
      - backend:
          service:
            name: websocket-repeater
            port:
              number: 80

Zaufany certyfikat główny usługi Application Gateway

Użytkownicy mogą teraz skonfigurować własne certyfikaty główne do usługi Application Gateway, aby był zaufany za pośrednictwem programu AGIC. Adnotacja appgw-trusted-root-certificate może być używana razem z protokołem zaplecza adnotacji, aby wskazać kompleksowe szyfrowanie ssl, wiele certyfikatów głównych, rozdzielonych przecinkami, na przykład "name-of-my-root-cert1,name-of-my-root-certificate2".

Użycie

appgw.ingress.kubernetes.io/backend-protocol: "https"
appgw.ingress.kubernetes.io/appgw-trusted-root-certificate: "name-of-my-root-cert1"

Przykład

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-certificate
  namespace: test-ag
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/backend-protocol: "https"
    appgw.ingress.kubernetes.io/appgw-trusted-root-certificate: "name-of-my-root-cert1"
spec:
  rules:
  - host: www.contoso.com
    http:
      paths:
      - backend:
          service:
            name: websocket-repeater
            port:
              number: 80

Ponowne zapisywanie zestawu reguł

Poniższa adnotacja umożliwia przypisanie istniejącej reguły ponownego zapisywania do odpowiedniej reguły routingu żądań.

Użycie

appgw.ingress.kubernetes.io/rewrite-rule-set: <rewrite rule set name>

Przykład

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

Ponowne zapisywanie zestawu reguł niestandardowych

Uwaga

Usługa Application Gateway for Containers została wydana, co wprowadza wiele zmian wydajności, odporności i funkcji. Rozważ wykorzystanie usługi Application Gateway dla kontenerów na potrzeby następnego wdrożenia. Reguły ponownego zapisywania adresów URL dla usługi Application Gateway dla kontenerów można znaleźć tutaj dla interfejsu API bramy i tutaj dla interfejsu API ruchu przychodzącego. Reguły ponownego zapisywania nagłówka dla usługi Application Gateway dla kontenerów można znaleźć tutaj dla interfejsu API bramy.

Uwaga

Ta funkcja jest obsługiwana od wersji 1.6.0-rc1. Użyj polecenia appgw.ingress.kubernetes.io/rewrite-rule-set, który umożliwia używanie istniejącej reguły ponownego zapisywania ustawionej w usłudze Application Gateway.

Usługa Application Gateway umożliwia ponowne zapisywanie wybranej zawartości żądań i odpowiedzi. Dzięki tej funkcji można tłumaczyć adresy URL, parametry ciągu zapytania, a także modyfikować nagłówki żądań i odpowiedzi. Umożliwia również dodawanie warunków w celu upewnienia się, że adres URL lub określone nagłówki zostaną przepisane tylko wtedy, gdy zostaną spełnione określone warunki. Te warunki są oparte na informacjach dotyczących żądania i odpowiedzi. Zasób niestandardowy zestawu reguł ponownego zapisywania powoduje przeniesienie tej funkcji do usługi AGIC.

Nagłówki HTTP umożliwiają klientowi i serwerowi przekazywanie dodatkowych informacji z żądaniem lub odpowiedzią. Zapisując te nagłówki ponownie, można wykonać ważne zadania, takie jak dodawanie pól nagłówków związanych z zabezpieczeniami, takich jak HSTS/ X-XSS-Protection, usuwanie pól nagłówka odpowiedzi, które mogą ujawniać poufne informacje i usuwanie informacji o porcie z nagłówków X-Forwarded-For.

Dzięki możliwości ponownego zapisywania adresów URL możesz: - Przepisać nazwę hosta, ścieżkę i ciąg zapytania adresu URL żądania — wybierz ponowne zapisywanie adresu URL wszystkich żądań lub tylko tych żądań, które odpowiadają co najmniej jednemu ustawieniu warunków. Te warunki są oparte na właściwościach żądania i odpowiedzi (nagłówek żądania, nagłówek odpowiedzi i zmienne serwera). — Wybierz kierowanie żądania na podstawie oryginalnego adresu URL lub przepisanego adresu URL

Użycie

appgw.ingress.kubernetes.io/rewrite-rule-set-custom-resource

Przykład

apiVersion: appgw.ingress.azure.io/v1beta1 
kind: AzureApplicationGatewayRewrite 
metadata: 
  name: my-rewrite-rule-set-custom-resource 
spec: 
  rewriteRules: 
  - name: rule1 
    ruleSequence: 21
    conditions:
  - ignoreCase: false
    negate: false
    variable: http_req_Host
    pattern: example.com
  actions:
    requestHeaderConfigurations:
    - actionType: set
      headerName: incoming-test-header
      headerValue: incoming-test-value
    responseHeaderConfigurations:
    - actionType: set
      headerName: outgoing-test-header
      headerValue: outgoing-test-value
    urlConfiguration:
      modifiedPath: "/api/"
      modifiedQueryString: "query=test-value"
      reroute: false

Priorytet reguły

Ta adnotacja umożliwia kontrolerowi ruchu przychodzącego bramy aplikacji jawne ustawienie priorytetu skojarzonych reguł routingu żądań.

Użycie

appgw.ingress.kubernetes.io/rule-priority:

Przykład

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-rulepriority
  namespace: test-ag
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/rule-priority: 10
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 8080

W powyższym przykładzie reguła routingu żądań będzie miała ustawiony priorytet 10.