3.3.1 资源管理操作概述

资源的管理操作可简单归结为增、删、改、查四种,kubectl 提供了一系列的子命令用于执行此类任务,如 create、delete、patch、apply、replace、edit、get等,其中有些命令必须基于资源清单来进行,如apply和replace命令,也有些命令即可基于清单文件进行,也可实时作用于活动资源之上,如 create、get、patch和delete等。

kubectl 命令能够读取任何以 .yaml、.yml或.json为后缀的文件(可称为配置清单或配置文件,后文将不加区别地使用这两个术语)。实践中,用户既可以为每个资源使用专用的清单文件,也可以将多个相关的资源(例如,属于同一个应用或微服务)组织在同一个清单文件中。不过,如果是YAML格式的清单文件,多个资源彼此之间要使用“---”符号作为单独的一行进行资源的分割。这样,多个资源就将以清单文件中定义的次序被create、apply等子命令调用。

kubectl 的多数子命令支持使用“-f”选项指定使用的清单文件路径或URL,也可以是存储有清单文件的目录,另外,此选项再同一命令中也可重复使用多次。如果指定的目录路径村存在子目录中时,那么可按需同时使用“-R”选项以递归获取子目录中的配置清单。

再者,支持使用标签和注解是 kubernetes 系统的一大特色,它为资源管理机制增色不少,而且 delete 和 get 等命令能够基于标签挑选目标对象,有些资源甚至必须依赖标签才能正常使用和工作,例如 Service 和 Pod 控制器 Deployment 等资源对象。子命令 label 用于管理资源标签,而管理资源注解的子命令则是 annotate。

就地更新(修改)现有的资源也是一种常见的操作。apply命令通过比较资源再清单文件中的版本及前一次的版本执行更新操作,它不会对未定义的属性产生额外的作用。edit命令相当于先使用get命令获取资源配置,通过交互式编辑器修改后再自动使用apply命令将其应用。patch命令基于JSON补丁、JSON合并补丁及策略合并补丁对资源进行就地更新操作。

为了利用 apply 命令的优势,用户应该总是使用 apply 命令或 create --save-config 命令创建资源。

results matching ""

    No results matching ""