【发布时间】:2022-01-12 07:21:29
【问题描述】:
每当我尝试应用入口资源/规则 yaml 文件时,我都会遇到以下错误:
调用 webhook “validate.nginx.ingress.kubernetes.io”失败:发布“https://ingress-nginx-controller-admission.ingress-nginx.svc:443/networking/v1/ ingresses?timeout=10s": EOF
“调用 webhook 失败“validate.nginx.ingress.kubernetes.io”似乎有多个错误:发布“https://ingress-nginx-controller-admission.ingress-nginx.svc:443/networking/ v1/ingresses?timeout=10s": 此处出错
如下:
- 超出上下文截止日期
- x509: 由未知机构签署的证书
- 临时重定向
- EOF
- 没有可用于服务“ingress-nginx-controller-admission”的端点
...还有更多。
我的观察:
一旦应用了入口资源/规则 yaml,就会显示上述错误,并且入口控制器会重新启动,如下所示:
NAME READY STATUS RESTARTS AGE
ingress-nginx-controller-5cf97b7d74-zvrr6 1/1 Running 6 30m
ingress-nginx-controller-5cf97b7d74-zvrr6 0/1 OOMKilled 6 30m
ingress-nginx-controller-5cf97b7d74-zvrr6 0/1 CrashLoopBackOff 6 30m
ingress-nginx-controller-5cf97b7d74-zvrr6 0/1 Running 7 31m
ingress-nginx-controller-5cf97b7d74-zvrr6 1/1 Running 7 32m
这里可能会提到一个可能的解决方案(虽然不确定): https://stackoverflow.com/a/69289313/12241977
但不确定它是否可能适用于 AWS EKS 等托管 Kubernetes 服务,因为我们无法访问 kube-api 服务器。
“种类:ValidatingWebhookConfiguration”部分也有来自 yaml 的以下字段:
clientConfig:
service:
namespace: ingress-nginx
name: ingress-nginx-controller-admission
path: /networking/v1/ingresses
那么“路径:/networking/v1/ingresses”的作用是什么?它驻留在哪里,或者我们可以在哪里找到这条路径? 我使用以下命令检查了验证 webhook,但无法找到上述路径的位置
kubectl describe validatingwebhookconfigurations ingress-nginx-admission
设置详情
我使用 NodePort 暴露的Bare-metal method 安装
入口控制器版本 - v1.1.0
Kubernetes 集群版本 (AWS EKS):1.21
【问题讨论】:
-
ingress nginx是如何安装的?安装了哪个版本的ingress-nginx?使用哪个集群版本?至于您关于path的问题,它是一个文字路径,请求将在指定服务上发送。请看k8s service reference -
您好,感谢您的回复!我使用裸机方法安装:kubernetes.github.io/ingress-nginx/deploy/#bare-metal-clusters,控制器版本 - v1.1.0,Kubernetes 集群版本(AWS EKS):1.21
标签: kubernetes amazon-eks nginx-ingress