在路径级别应用 nginx-ingress 注释

Ben*_*n T 6 nginx kubernetes nginx-ingress

我们正在从传统的 nginx 部署迁移到 kubernetes nginx-ingress 控制器。我正在尝试在某个location级别应用设置,但不知道如何使用注释来执行此操作。

例如,我们有:

server {
  listen 80;
  server_name example.com;

  location /allow-big-uploads {
    client_max_body_size 100M;
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

我们翻译成这样:

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
Run Code Online (Sandbox Code Playgroud)

在该部分下添加该注释path似乎不起作用。我错过了什么吗?

Mat*_*att 4

注释只能在整个 kubernetes 资源上设置,因为它们是资源元数据的一部分。入口规范不包括较低级别的功能。

如果您正在寻找更复杂的设置,traefik为其入口控制器构建了自定义资源定义,允许每个服务进行更多配置。缺点是定义与其他入口控制器不兼容。