删除Rancher的空间cattle-system,状态一直是Terminating

发布时间 2023-08-22 17:51:59作者: 滴滴滴

Rancher(一) 踩坑记,删除Rancher的空间cattle-system,状态一直是Terminating

 

 

订阅专栏

kubernetes
13 篇文章2 订阅
订阅专栏
文章目录
一、故障现象
二、解决办法
问题一
(1)问题描述
(2)解决方案
(3)解释说明
本文使用的rancher版本是v2.7.5

一、故障现象
  在需要导入的集群环境中执行以下框红的代码过程中,由于第一次操作失误,集群一直无法正常导入,删除Rancher依赖的namespace(cattle-system),状态一直是Terminating。

如下图所示:


二、解决办法
  在参考了我另外一篇博客之后 kubernetes namespace Terminating状态 无法删除的解决方法 一文的步骤之后
问题还是没有解决。

以下是这个问题的最终解决办法,执行一下命令:

kubectl patch namespace cattle-system -p '{"metadata":{"finalizers":[]}}' --type='merge' -n cattle-system
kubectl delete namespace cattle-system --grace-period=0 --force

kubectl patch namespace cattle-global-data -p '{"metadata":{"finalizers":[]}}' --type='merge' -n cattle-system
kubectl delete namespace cattle-global-data --grace-period=0 --force

kubectl patch namespace local -p '{"metadata":{"finalizers":[]}}' --type='merge' -n cattle-system

for resource in `kubectl api-resources --verbs=list --namespaced -o name | xargs -n 1 kubectl get -o name -n local`; do kubectl patch $resource -p '{"metadata": {"finalizers": []}}' --type='merge' -n local; done

kubectl delete namespace local --grace-period=0 --force


在执行过程中可能会遇到新的问题,我整理如下:

问题一
(1)问题描述
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;

(2)解决方案
[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

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

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

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

我的问题到这里就解决了,希望能帮到各位coder。

打完,收工

文章知识点与官方知识档案匹配,可进一步学习相关知识
云原生入门技能树首页概览14759 人正在系统学习中

————————————————
版权声明:本文为CSDN博主「bacawa」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/bacawa/article/details/131791947