记一次nginx.ingress.kubernetes.io/configuration-snippet报错
在迁移xxl-job到k8s集群中,报错one or more objects failed to apply, reason: admission webhook "validate.nginx.ingress.kubernetes.io" denied the request: nginx.ingress.kubernetes.io/configuration-snippet annotation cannot be used. Snippet directives are disabled by the Ingress administrator
报错的配置如下
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: pro-ingress-intranet
myname: xiaowangtech
nginx.ingress.kubernetes.io/configuration-snippet: |
if ($request_uri = "/") {
return 302 /xxl-job-admin;
}
labels:
app.kubernetes.io/instance: pro-xxl-job-admin
name: pro-xxl-job-admin-ingress
namespace: pro
spec:
rules:
- host: job-pro.wei.com
http:
paths:
- backend:
service:
name: pro-xxl-job-admin-svc
port:
number: 8080
path: /
pathType: ImplementationSpecific
tls:
- hosts:
- job-pro.wei.com
secretName: xiaowangtech-com
分析报错
根据报错信息可知,是没开放nginx.ingress.kubernetes.io/configuration-snippet配置,则在kube-system修改ingress-nginx-controller配置为true即可
解决报错
kubectl edit cm -n kube-system pro-ingress-intranet-ingress-nginx-controller
再次执行yaml文件发现ingress.yaml已创建成功,状态正常