--- title: "kubectl 介绍" content_type: concept weight: 1 --- kubectl 是 Kubernetes CLI 版本的瑞士军刀,可以胜任多种多样的任务。 本文主要介绍如何使用 kubectl 在 Kubernetes 中声明式管理应用,本文还涵盖了一些其他的 kubectl 功能。 ## 命令分类 {#command-families} 大多数 kubectl 命令通常可以分为以下几类: | 类型 | 用途 | 描述 | |-----|------|------| | 声明式资源管理 | 部署和运维(如 GitOps)| 使用资源管理声明式管理 Kubernetes 工作负载 | | 命令式资源管理 | 仅限开发环境 | 使用命令行参数和标志来管理 Kubernetes 工作负载 | | 打印工作负载状态 | 调试 | 打印有关工作负载的信息 | | 与容器交互 | 调试 | 执行、挂接、复制、日志 | | 集群管理 | 集群运维 | 排空和封锁节点 | ## 声明式应用管理 {#declarative-application-management} 管理资源的首选方法是配合 kubectl **Apply** 命令一起使用名为资源的声明式文件。 此命令读取本地(或远程)文件结构,并修改集群状态以反映声明的意图。 {{< alert color="success" title="Apply" >}} Apply 是在 Kubernetes 集群中管理资源的首选机制。 {{< /alert >}} ## 打印工作负载状态 {#printing-state-about-workloads} 用户需要查看工作负载状态。 - 打印关于资源的摘要状态和信息 - 打印关于资源的完整状态和信息 - 打印资源的特定字段 - 查询与标签匹配的资源 ## 调试工作负载 {#debugging-workloads} kubectl 支持通过提供以下命令进行调试: - 打印 Container 日志 - 打印集群事件 - 执行或挂接到 Container - 将集群中 Container 中的文件复制到用户的文件系统 ## 集群管理 {#cluster-management} 有时用户可能需要对集群的节点执行操作。 kubectl 支持使用命令将工作负载从节点中排空,以便节点可以被停用或调试。 ## Porcelain 用户可能会发现使用资源管理进行 **开发** 过于繁琐, 他们更喜欢使用类似于 Shell 的工作流以 **命令式** 与集群交互。 kubectl 提供了用于生成和修改资源的 Porcelain 命令。 - 生成和创建 Deployment、StatefulSet、Service、ConfigMap 等这类资源 - 设置资源的字段 - 在文本编辑器中(实时)编辑资源 {{< alert color="warning" title="Porcelain 仅限开发使用" >}} Porcelain 命令在开发集群中进行工作负载实验时可以节省时间,但不应用于生产。 {{< /alert >}}