《 Kubernetes进阶实战》一2.4.5修改及删除对象
2.4.5 修改及删除对象
成功创建于Kubernetes之上的对象也称为活动对象(live object),其配置信息(live object conf?iguration)由API Server保存于集群状态存储系统etcd中,“kubectl get TYPE NAME -o yaml”命令可获取到相关的完整信息,而运行“kubectl edit”命令可调用默认编辑器对活动对象的可配置属性进行编辑。例如,修改此前创建的Service对象myapp的类型为ClusterIP,使用“kubectl edit service myapp”命令打开编辑界面后修改type属性的值为ClusterIP,并删除NodePort属性,然后保存即可。对活动对象的修改将实时生效,但资源对象的有些属性并不支持运行时修改,此种情况下,编辑器将不允许保存退出。
有些命令是kubectl edit命令某一部分功能的二次封装,例如,kubectl scale命令不过是专用于修改资源对象的replicas属性值而已,它也同样直接作用于活动对象。
不再有价值的活动对象可使用“kubectl delete”命令予以删除,需要删除Service对象myapp时,使用如下命令即可完成:
~]$ kubectl delete service myapp
service "myapp" deleted
有时候需要清空某一类型下的所有对象,只需要将上面命令对象的名称换成“--all”选项便能实现。例如,删除默认名称空间中所有的Deployment控制器的命令如下:
~]$ kubectl delete deployment --all
deployment.extensions "myapp" deleted
需要注意的是,受控于控制器的Pod对象在删除后会被重建,删除此类对象需要直接删除其控制器对象。不过,删除控制器时若不想删除其Pod对象,可在删除命令上使用“--cascade=false”选项。
虽然直接命令式管理的相关功能强大且适合用于操纵Kubernetes资源对象,但其明显的缺点是缺乏操作行为以及待运行对象的可信源。另外,直接命令式管理资源对象存在较大的局限性,它们在设置资源对象属性方面提供的配置能力相当有限,而且还有不少资源并不支持命令操作进行创建,例如,用户无法创建带有多个容器的Pod对象,也无法为Pod对象创建存储卷。因此,管理资源对象更有效的方式是基于保存有对象配置信息的配置清单来进行。
- 点赞
- 收藏
- 关注作者
评论(0)