开发者学堂课程【Kubernetes 极速入门:K8S 集群核心概念 Controller _使用命令行或资源清单文】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/658/detail/10914
K8S 集群核心概念 Controller _使用命令行或资源清单文
内容介绍
一. 不能直接删除 Deployment 控制器类型应用
二. 通过 kubectl 命令行删除
三. 通过 kubectl 应用资源清单文件删除
一. 不能直接删除 Deployment 控制器类型应用
删除 Deployment 控制器类型的应用,不建议直接删除Pod,带有控制器类型的 Pod 不能随便删除,如果必须删除,请删除控制器类型的应用名称,如果直接删除 pods ,是无法删除掉的。
例:在 masterl 的节点当中使用 kubectl get pods看一下都有哪些 Pod ,有nginx-app1-57c7c9c89d-qp8h8这个Pod ,直接使用 kubectl delete pods 加 pod 名称,如果有命名空间的话,可以加上命名空间,如果默认就不用加了,可以直接删除。
删除后会发现一件事 Pod 并没有被删除掉,会发现它原先有两个 pod ,现在依然有两个 pod ,但是会看到一个 pod 已经运行了22分钟,另一个 pod 才运行了6秒。
由此可见,这个 pod 是被重新拉起的,因此,带有控制器类型的 pod 是不能直接删除的,也删除不掉的。
这样就能保证运用的一个高可用,再也不用像在主机时代或虚拟机时代那样,想方设法让它们一直处于高可用状态,在K8S集群当中非常简单自然地实现了,那么如何去删除 pod 呢,要通过删除控制器类型的应用,才能够删除 pod 。
二.通过 kubectl 命令行删除
先用 kubectl get deployment apps 查看应用有哪些,再用 kubectl delete deployment . apps nginx-app 直接删除这种控制器类型的应用
例:先查看一下 deployment 类型的应用有那些,有 nginx-app1和 nginx-app2,先来删除1,直接用 deployment 类型的控制器再加上应用的名称,这样才能删除,一定要加上类型的名称,直接回车,然后就会看到deployment这个点应用已经被删除了,再看一下它的 replaceside 还存不存在,会发现 nginx-app1 已经不存在了,并且所对应的 pod 也不存在了。
由此可见,控制器的主要目的就是为了去控制 pod 的一个运行状态,对 pod 进行监控的.
三.通过 kubectl 应用资源清单文件删除
先确认是否拥有 deployment 控制器类型的应用,再核对资源清单文件是否具有这个应用的名称,如果有,直接使用 kubectl delete -f 03-creat-deployment-app.yaml 就可以删除掉了.
例:先查看到了 deployment 控制器类型的应用是 nginx-app2,如果想删除它,可以通过命令行来删,也可以通过资源清单文件来删,那资源清单文件是否符合这种目的呢?
打开资源清单文件看一下,看到它的资源清单文件,所以就可以应用这个来删了,直接应用上述代码 加 nginx-app2 ,回车,可以看到 deployment 控制器类型的应用已经被删除了.