kubernetes namespace Terminating

1.kubectl get namespace annoying-namespace-to-delete -o json > tmp.json
then edit tmp.json and remove"kubernetes"

curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json https://kubernetes-cluster-ip/api/v1/namespaces/annoying-namespace-to-delete/finalize

and it should delete your namespace,

2.Kubernetes强制删除一直处于Terminating状态的pod,namespace

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

解决方法:

  1. 可使用kubectl中的强制删除命令

    # 删除PODkubectl delete pod PODNAME --force --grace-period=0
    
    # 删除NAMESPACEkubectl delete namespace NAMESPACENAME --force --grace-period=0
  1. 若以上方法无法删除,可使用第二种方法,直接从ETCD中删除源数据(这是一种最暴力的方式,我们不建议直接操作etcd中的数据,在操作前请确认知道你是在做什么。)

    # 删除default namespace下的pod名为pod-to-be-deleted-0ETCDCTL_API=3 etcdctl del /registry/pods/default/pod-to-be-deleted-0
    
    # 删除需要删除的NAMESPACEetcdctl del /registry/namespaces/NAMESPACENAME

原文地址:https://www.cnblogs.com/jiuchongxiao/p/9415655.html

时间: 2024-10-09 03:11:03

kubernetes namespace Terminating的相关文章

K8S-删除Terminating状态的namespace

kubernetes 删除Terminating状态的命名空间 1.检查该namespace下是否还有资源: kubectl get all --namespace=cattle-system 2.删除资源: kubectl delete pods <pod> --grace-period=0 --force 3.编辑namespace: kubectl edit ns cattle-system 注释掉finalizers部分,保存即会删除该ns 4.查看查看已被删除: kubectl ge

[系统集成] 基于Kubernetes 部署 jenkins 并动态分配资源

基于kubernetes 部署 jenkins master 比较简单,难点是为 jenkins 动态分配资源.基于kubernetes 为 jenkins 动态分配资源需要实现下述功能: 资源分配:jenkins 根据任务属性自动创建临时 docker 容器,并作为 slave 节点加入 jenkins 集群,实现资源的分配: 资源释放:任务执行结束后,jenkins 自动删除相关节点,并销毁相关 docker 容器,实现资源的释放: 整个资源分配和资源释放过程对用户来说是透明的,用户只需要创

Kubernetes之服务发现及负载Services

Service 概述 kubernetes 中的pod是有生生灭灭的,时刻都有可能被新的pod所代替,而不可复活(pod的生命周期).一旦一个pod生命终止,通过ReplicaSets动态创建和销毁pod(Pod的动态扩缩容,滚动升级 等). 每个pod都有自己的IP,这IP随着pod的生生灭灭而变化,不能被依赖.这样导致一个问题,如果这个POD作为后端(backend)提供一些功能供给一些前端POD(frontend),在kubernete集群中是如何实现让这些前台能够持续的追踪到这些后台的?

转【非容器化Jenkins连接Kubernetes】

一.环境说明 OS系统版本:Ubuntu 18.04 TLS 软件版本:Jenkins 2.121.2 Kubernetes plugin 1.10.2 Kubernetes集群 1.10.4 二.添加kubernetes plugin 系统管理->管理插件->可选插件,搜索kubernetes plugin并选择安装 三.配置kubernetes plugin连接kubernetes集群 1.点击系统管理->系统设置-添加一个云,在下拉菜单中选择kubernets并添加 2.填写云ku

为Kubernetes dashboard访问用户添加权限控制

为Kubernetes dashboard访问用户添加权限控制 [TOC] 1. 需求 在开发环境给开发人员创建应用部署管理权限,可以使用dashboard的token和kubeconfig文件登录,并在开发人员机器上安装kubectl命令,可以使用kubectl port-forward命令. 2. 方案 因为我们用到了dashboard和kubeapps,所以他们的rbac权限都要分配. 创建namespace:dev 创建ServiceAccount:dev-user1 给相应权限,并绑定

kubernetes认证、授权、准入控制

1 总述 1 概述 kubernetes 中的资源访问类型有两种,一种是由POD提供的服务资源,其可通过service或 ingress提供接口以供外部访问,这种访问不需要经过API server的认证,而另一种对集群内部资源的操作则需要经过一定的认证授权操作才能完成. 2 认证,授权,准入控制概述 1 概述 任何客户端在操作相关资源对象时必须经过三个步骤:认证: 身份鉴别,正确的账号,能够通过认证,其只能证明其是合法的账户.授权: 权限检查,对资源进行相应的操作.其可操作某些资源,其某些资源需

二进制方式部署kubernetes 1.16.0

环境 操作系统:CentOS Linux release 7.7.1908 (Core) Kernel version:3.10.0-1062.1.1.el7.x86_64 工作系统:win10 on Ubuntu 19.04 ETCD 部署IP: 192.168.30.50 ETCD 版本: v3.4.1 kube-apiserver,kube-scheduler,kube-controller-manager 部署IP: 192.168.30.52 kubelet部署IP:192.168.3

Jenkis pipeline构建项目实践

在完成前文的jenkins server 在k8s环境部署之后,本文我们来测试在k8s集群环境中的jenkins pipeline构建项目和更新,具体环境要求如下:1.jenkins pipeline插件安装成功2.要更新的应用已提前部署3.Jenkins slave中需要有kubectl.svn.mvn客户端且环境变量设置准确4.Jenkis slave需要能和master的api-server进行正常通信(这里为了简便,前文构建jenkins server的时候直接对defalut这个ser

Jenkis pipeline构建菠菜源码搭建出售项目实践

在完成前文的jenkins server 在k8s环境部署 之后,本文我们来测试在k8s集群环境中的jenkins pipeline构建项目和更新,具体环境要求如下:1.jenkins pipeline插件安装成功2.要更新的应用已提前部署3.Jenkins slave中需要有kubectl.svn.mvn客户端且环境变量设置准确4.Jenkis slave需要能和master的api-server进行正常通信(这里为了简便,前文构建jenkins server的时候直接对defalut这个se