Migrujemy z tradycyjnego wdrożenia Nginx do kontrolera KuberNetes Nginx-Ingress. Próbuję zastosować ustawienia na poziomie {x0}}, ale nie widzę, jak to zrobić z adnotacji.

Na przykład, mieliśmy:

server {
  listen 80;
  server_name example.com;

  location /allow-big-uploads {
    client_max_body_size 100M;
    ...
  }
}

I przekładamy się na coś takiego:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: web-ingress
  annotations:
    nginx.ingress.kubernetes.io/proxy-body-size: 100m <-- this now applies globally
spec:
  rules:
    - host: example.com
      http:
        paths:
          - path: /allow-big-uploads
            backend:
              serviceName: example-svc
              servicePort: 5009

Dodanie tej adnotacji w sekcji {X0}} nie działa. Brakowam czegoś?

1
Ben T 19 marzec 2020, 02:49

2 odpowiedzi

Najlepsza odpowiedź

Adnotacje można ustawić tylko na całym zasobie Kubernetes, Ponieważ są one częścią zasobów Metadane. Ingres Spec nie zawiera tej funkcji na niższym poziomie.

Jeśli szukasz bardziej złożonych konfiguracji, Traefik zbudowałem Niestandardowa definicja zasobów dla ich kontrolera wnikania, która umożliwia większą konfigurację na Serwis. Wodę jest definicja nie jest zgodna z innymi kontrolerami wejściami.

1
Matt 19 marzec 2020, 03:12

Jeśli masz 2 lokalizacje na tym samym hoście i chcesz zastosować ustawienie w jednym miejscu, możesz utworzyć 2 ingresses z tymi samymi hostami, i złożyć wniosek na INGRESS Cię zainteresowany adnotacja fragmentacji konfiguracji:

https://kubernetes.github.io/ingress-nginx/user-guide/nginx-Configuration/annotations/#configuration-snippet.

nginx.ingress.kubernetes.io/configuration-snippet: |

  more_set_headers "Request-Id: $req_id";

Próbowałem tego przykładu i to działa.

Jednak gdy próbuję zmienić client_max_body_size za pośrednictwem fragmentu konfiguracyjnego, otrzymuję błąd:

"client_max_body_size" directive is duplicate
0
iliefa 21 maj 2020, 12:41