gpt4 book ai didi

nginx.ingress.kubernetes.io/server-snippet 注解包含无效词位置

转载 作者:行者123 更新时间:2023-12-05 03:32:31 34 4
gpt4 key购买 nike

我是 kubernetes 的新手,使用的是 AWS EKS 集群 1.21。我正在尝试为我的 k8s 集群编写 nginx 入口配置,并使用 server-snippet 阻止一些请求。我的入口配置如下

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: abc-ingress-external
namespace: backend
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
kubernetes.io/ingress.class: nginx-external
nginx.ingress.kubernetes.io/server-snippet: |
location = /ping {
deny all;
return 403;
}
spec:
rules:
- host: dev-abc.example.com
http:
paths:
- backend:
service:
name: miller
port:
number: 80
path: /
pathType: Prefix

当我应用这个配置时,我得到这个错误:

for: "ingress.yml": admission webhook "validate.nginx.ingress.kubernetes.io" denied the request: nginx.ingress.kubernetes.io/server-snippet annotation contains invalid word location

我对此进行了调查,发现它与 annotation-value-word-blocklist 有关。但是我不知道如何解决这个问题。任何帮助将不胜感激。

最佳答案

似乎有 issue使用 location有一些版本。以下内容在 EKS 集群上测试成功。

在 EKS 上安装基本的 ingress-nginx:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.0/deploy/static/provider/aws/deploy.yaml

注意:如果你的集群版本是<1.21,需要注释掉ipFamilyPolicyipFamilies在服务规范中。

运行一个 http 服务:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/docs/examples/http-svc.yaml

为服务创建入口:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: http-svc
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/server-snippet: |
location = /ping {
deny all;
return 403;
}
spec:
rules:
- host: test.domain.com
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
service:
name: http-svc
port:
number: 8080

按预期返回 200: curl -H 'HOST: test.domain.com' http://<get your nlb address from the console>

按预期返回 200: curl -H 'HOST: test.domain.com' -k https://<get your nlb address from the console>

按预期返回 403,该代码段有效: curl -H 'HOST: test.domain.com' -k https://<get your nlb address from the console>/ping

enter image description here

使用最新版本以避免“注释包含无效词位置”问题。

关于nginx.ingress.kubernetes.io/server-snippet 注解包含无效词位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70469602/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com