--- title: 使用配置文件对 Kubernetes 对象进行命令式管理 content_type: task weight: 40 --- 可以使用 `kubectl` 命令行工具以及用 YAML 或 JSON 编写的对象配置文件来创建、更新和删除 Kubernetes 对象。 本文档说明了如何使用配置文件定义和管理对象。 ## {{% heading "prerequisites" %}} 安装 [`kubectl`](/zh/docs/tasks/tools/) 。 {{< include "task-tutorial-prereqs.md" >}} {{< version-check >}} ## 权衡 `kubectl` 工具支持三种对象管理: * 命令式命令 * 命令式对象配置 * 声明式对象配置 参看 [Kubernetes 对象管理](/zh/docs/concepts/overview/working-with-objects/object-management/) 中关于每种对象管理的优缺点的讨论。 ## 如何创建对象 你可以使用 `kubectl create -f` 从配置文件创建一个对象。 请参考 [kubernetes API 参考](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/) 有关详细信息。 * `kubectl create -f ` ## 如何更新对象 {{< warning >}} 使用 `replace` 命令更新对象会删除所有未在配置文件中指定的规范的某些部分。 不应将其规范由集群部分管理的对象使用,比如类型为 `LoadBalancer` 的服务, 其中 `externalIPs` 字段独立于配置文件进行管理。 必须将独立管理的字段复制到配置文件中,以防止 `replace` 删除它们。 {{< /warning >}} 你可以使用 `kubectl replace -f` 根据配置文件更新活动对象。 * `kubectl replace -f ` ## 如何删除对象 你可以使用 `kubectl delete -f` 删除配置文件中描述的对象。 * `kubectl delete -f ` {{< note >}} 如果配置文件在 `metadata` 节中设置了 `generateName` 字段而非 `name` 字段, 你无法使用 `kubectl delete -f ` 来删除该对象。 你必须使用其他标志才能删除对象。例如: ```shell kubectl delete kubectl delete -l