kubectl 介绍

kubectl 是 Kubernetes CLI 版本的瑞士军刀,可以胜任多种多样的任务。

本文主要介绍如何使用 kubectl 在 Kubernetes 中声明式管理应用,本文还涵盖了一些其他的 kubectl 功能。

命令分类

大多数 kubectl 命令通常可以分为以下几类:

类型用途描述
声明式资源管理部署和运维(如 GitOps)使用资源管理声明式管理 Kubernetes 工作负载
命令式资源管理仅限开发环境使用命令行参数和标志来管理 Kubernetes 工作负载
打印工作负载状态调试打印有关工作负载的信息
与容器交互调试执行、挂接、复制、日志
集群管理集群运维排空和封锁节点

声明式应用管理

管理资源的首选方法是配合 kubectl Apply 命令一起使用名为资源的声明式文件。 此命令读取本地(或远程)文件结构,并修改集群状态以反映声明的意图。

Apply

Apply 是在 Kubernetes 集群中管理资源的首选机制。

打印工作负载状态

用户需要查看工作负载状态。

  • 打印关于资源的摘要状态和信息
  • 打印关于资源的完整状态和信息
  • 打印资源的特定字段
  • 查询与标签匹配的资源

调试工作负载

kubectl 支持通过提供以下命令进行调试:

  • 打印 Container 日志
  • 打印集群事件
  • 执行或挂接到 Container
  • 将集群中 Container 中的文件复制到用户的文件系统

集群管理

有时用户可能需要对集群的节点执行操作。 kubectl 支持使用命令将工作负载从节点中排空,以便节点可以被停用或调试。

Porcelain

用户可能会发现使用资源管理进行 开发 过于繁琐, 他们更喜欢使用类似于 Shell 的工作流以 命令式 与集群交互。 kubectl 提供了用于生成和修改资源的 Porcelain 命令。

  • 生成和创建 Deployment、StatefulSet、Service、ConfigMap 等这类资源
  • 设置资源的字段
  • 在文本编辑器中(实时)编辑资源

Porcelain 仅限开发使用

Porcelain 命令在开发集群中进行工作负载实验时可以节省时间,但不应用于生产。