想添加一点自定义的配置,用于禁止访问一些页面

  annotations:
    nginx.ingress.kubernetes.io/server-snippet: |
      if ($request_uri ~* "/index\.html$") {
        return 403;
      }

报错提示

admission webhook "validate.nginx.ingress.kubernetes.io" denied the request: nginx.ingress.kubernetes.io/server-snippet annotation cannot be used. Snippet directives

are disabled by the Ingress administrator

 最后查到资料

snippet注解默认禁用

影响版本:v1.9.3-aliyun.1以下(不包括v1.9.3-aliyun.1)。

由于安全原因,自v1.9.3-aliyun.1版本起,Nginx Ingress Controller将默认禁用所有snippet注解,可能包括:

  • nginx.ingress.kubernetes.io/configuration-snippet

  • nginx.ingress.kubernetes.io/server-snippet

  • nginx.ingress.kubernetes.io/stream-snippet

  • nginx.ingress.kubernetes.io/auth-snippet

  • nginx.ingress.kubernetes.io/modsecurity-snippet

出于安全和稳定性风险的考虑,建议您优先使用相关注解或者设置项来实现所需功能。

如您仍需要使用snippet注解能力,请在充分评估风险后,通过在ConfigMap kube-system/nginx-configuration中添加allow-snippet-annotations: "true"手动开启注解功能。

  在 kube-system/nginx-configuration中添加allow-snippet-annotations: "true" 搞定

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐