调用 webhook 失败 "validate.nginx.ingress.kubernetes.io":在 NginxIngress 控制器中应用入口 resource/rules yaml 文件时出错
Getting failed calling webhook "validate.nginx.ingress.kubernetes.io": error when applying ingress resource/rules yaml file in NginxIngress Controller
每当我尝试应用入口 resource/rules yaml 文件时,我都会遇到以下错误:
调用 webhook 失败“validate.nginx.ingress.kubernetes.io”:Post“https://ingress-nginx-controller-admission.ingress-nginx.svc:443/networking/v1/ingresses?timeout=10s": EOF
“调用 webhook 失败”validate.nginx.ingress.kubernetes.io”似乎有多个错误:Post“https://ingress-nginx-controller-admission.ingress-nginx.svc:443/networking/v1/ingresses?timeout=10s": 此处出错
如下所示:
- 超过上下文截止日期
- x509: 由未知权威签署的证书
- 临时重定向
- EOF
- 没有可用于服务“ingress-nginx-controller-admission”的端点
...还有更多。
我的观察:
应用ingress resource/rules yaml后,会显示上述错误并且Ingress Controller会重新启动,如下所示:
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
这里提到了一个可能的解决方案(虽然不确定):
但不确定它是否适用于 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
好的,我现在开始工作了:
我的状态为“OOMKilled”(内存不足)。所以我所做的是在 Deployment yaml 的“resources:”部分下添加了“limits:”部分,如下所示:
resources:
requests:
cpu: 100m
memory: 90Mi
limits:
cpu: 200m
memory: 190Mi
现在,它对我来说很好。
每当我尝试应用入口 resource/rules yaml 文件时,我都会遇到以下错误:
调用 webhook 失败“validate.nginx.ingress.kubernetes.io”:Post“https://ingress-nginx-controller-admission.ingress-nginx.svc:443/networking/v1/ingresses?timeout=10s": EOF
“调用 webhook 失败”validate.nginx.ingress.kubernetes.io”似乎有多个错误:Post“https://ingress-nginx-controller-admission.ingress-nginx.svc:443/networking/v1/ingresses?timeout=10s": 此处出错
如下所示:
- 超过上下文截止日期
- x509: 由未知权威签署的证书
- 临时重定向
- EOF
- 没有可用于服务“ingress-nginx-controller-admission”的端点
...还有更多。
我的观察:
应用ingress resource/rules yaml后,会显示上述错误并且Ingress Controller会重新启动,如下所示:
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
这里提到了一个可能的解决方案(虽然不确定):
但不确定它是否适用于 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
好的,我现在开始工作了: 我的状态为“OOMKilled”(内存不足)。所以我所做的是在 Deployment yaml 的“resources:”部分下添加了“limits:”部分,如下所示:
resources:
requests:
cpu: 100m
memory: 90Mi
limits:
cpu: 200m
memory: 190Mi
现在,它对我来说很好。