我使用一个helm来部署集群,并包括入口图表依赖。
apiVersion: v2
name: aloco
description: A Helm chart for Kubernetes
type: application
version: 0.1.0
appVersion: "1.16.0"
dependencies:
- name: ingress-nginx
version: "4.7.*"
repository: "https://kubernetes.github.io/ingress-nginx"
Helm在部署ingress时会将aloco
添加到服务名称中,而ingress会变成aloco-ingress-nginx-controller-admission
,因为helm添加了图表名称。
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default aloco-ingress-nginx-controller LoadBalancer 10.245.104.155 159.223.250.102 80:31357/TCP,443:30712/TCP 12m
default aloco-ingress-nginx-controller-admission ClusterIP 10.245.42.135 <none> 443/TCP 12m
因为helm将图表名称添加到入口,所以我得到了一个错误,即ingress-nginx-controller-admission
未找到
Error: UPGRADE FAILED: failed to create resource: Internal error occurred: failed calling webhook "validate.nginx.ingress.kubernetes.io": failed to call webhook: Post "https://ingress-nginx-controller-admission.ingress-nginx.svc:443/networking/v1/ingresses?timeout=29s": service "ingress-nginx-controller-admission" not found
他们是选择删除aloco
还是更改validate.nginx.ingress.kubernetes.io
?
1条答案
按热度按时间xsuvu9jc1#
如果您的集群上安装了另一个Nginx ingress控制器,并且该图表的入场webhook pod关闭或出错,则会发生此错误。或者,就像您的情况一样,看起来其他服务没有正确地拆除
原因实际上在你的输出中:
检查是否在
ingress-nginx
命名空间中安装了nginx图表。你是手动删除它而不是通过
helm delete
吗?你可能做了,因为这是最常见的原因,离开周围的垃圾。删除阻止安装的webhook配置:
这将列出所有的validatingwebhook配置。应该有一个在那里标记
ingress-nginx-admission
或类似的。编辑它或使用
jq
(或使用-o jsonpath
)确保它指向您删除的服务(您将在webhooks[0].clientConfig.service
下看到配置指向的服务或
如果是指向已删除服务的服务,则可以将其删除