手动搭建的Kubernetes,使用原生的Dashboard,感觉不舒服,于是使用Rancher2.0代理了Kubernetes的管理web页面。因未知原因,Rancher服务无法启用,删除Rancher依赖的namespace(cattle-system),状态一直是Terminating。此为背景。

解决方法:

  1. 可使用kubectl中的强制删除命令
    1
    2
    3
    4
    5
    # 删除POD
    kubectl delete pod PODNAME --force --grace-period=0

    # 删除NAMESPACE
    kubectl delete namespace NAMESPACENAME --force --grace-period=0
  1. 若以上方法无法删除,可使用第二种方法,直接从ETCD中删除源数据(这是一种最暴力的方式,我们不建议直接操作etcd中的数据,在操作前请确认知道你是在做什么。)
    1
    2
    3
    4
    5
    # 删除default namespace下的pod名为pod-to-be-deleted-0
    ETCDCTL_API=3 etcdctl del /registry/pods/default/pod-to-be-deleted-0

    # 删除需要删除的NAMESPACE
    etcdctl del /registry/namespaces/NAMESPACENAME

参考链接: