一,详细报错信息

强制删除某个名称空间后,再创建提示报错如下:

 Error from server (InternalError): Internal error occurred: failed calling webhook "rancher.cattle.io.namespaces.create-non-kubesystem": failed to call webhook: Post "https://rancher-webhook.cattle-system.svc:443/v1/webhook/validation/namespaces?timeout=10s": service "rancher-webhook" not found

二,解决方案

[root@k8s-master rancher]# kubectl get MutatingWebhookConfiguration
NAME                             WEBHOOKS   AGE
cert-manager-webhook             1          5h50m
mutating-webhook-configuration   8          5h49m
rancher.cattle.io                5          120m
[root@k8s-master rancher]# kubectl delete MutatingWebhookConfiguration rancher.cattle.io 
mutatingwebhookconfiguration.admissionregistration.k8s.io "rancher.cattle.io" deleted

[root@k8s-master rancher]# kubectl get ValidatingWebhookConfiguration
NAME                               WEBHOOKS   AGE
cert-manager-webhook               1          5h51m
ingress-nginx-admission            1          6h6m
rancher.cattle.io                  13         121m
validating-webhook-configuration   11         5h50m
[root@k8s-master rancher]# kubectl delete ValidatingWebhookConfiguration rancher.cattle.io
validatingwebhookconfiguration.admissionregistration.k8s.io "rancher.cattle.io" deleted
[root@k8s-master rancher]# kubectl create ns cattle-system
namespace/cattle-system created

查看MutatingWebhookConfiguration和ValidatingWebhookConfiguration

使用delete删除影响操作的MutatingWebhookConfiguration和ValidatingWebhookConfiguration

最后重新创建名称空间即可。

解释说明:

其中ValidatingWebhookConfiguration 是 Kubernetes 中可扩展准入控制器(Admission Controllers)机制的一种实现形式,它定义了一组 Webhook 规则,用于对新创建或修改的 Kubernetes 资源进行自动验证和修正操作。具体地说,当 Kubernetes API Server 接收到新的资源提交请求时,它会调用已配置的 Validaing Admission Controller,根据不同的 ValidatingWebhookConfiguration 选择对应的 Webhook 进行验证和修正,并返回结果给 API Server 进行响应。这样,在资源进入 Kubernetes 集群之前就可以自动完成一些常见的验证和修正操作,如强制执行最佳实践、兼容性检查、安全审计等。

MutatingWebhookConfigurationValidatingWebhookConfiguration 类似,是 Kubernetes 中可扩展准入控制器(Admission Controllers)机制的一种实现形式,它定义了一组 Webhook 规则,用于在 Kubernetes API Server 接收到新的资源提交请求时,对新资源进行自动修改操作,从而实现资源自动化管理的目的。具体地说,当 Kubernetes API Server 接收到请求后,会根据不同的 MutatingWebhookConfiguration 配置选择对应的 Webhook 进行资源自动修改,并返回修改后的结果给 API Server 进行响应。

Logo

开源、云原生的融合云平台

更多推荐