3.3.2 kubectl 的基本用法

Kubectl 是最常用的客户端工具之一,它提供了基于命令行访问 kubernetes API 的简洁方式,能够满足对 kubernetes 的绝大部分的操作需求。例如,需要创建资源对象时,kubectl会将JSON格式的清单内容以POST方式提交至API Server。本节主要描述 kubectl 的基本功能。

如果要单独部署 kubectl,Kubernetes 也提供了相应的单独发行包,或者适配与各平台的程序管理器的相关程序包,如rpm包或deb包等,用户根据平台类型的不同获取相匹配的版本安装完成即可,操作步骤类似与前面的安装方法,因此这里不在给出其具体过程。

kubectl 是 kubernetes 系统的命令行客户端工具,特性丰富且功能强大,是 Kubernetes 管理员最常用的集群管理工具。其最基本的语法格式为“kubectl [command] [TYPE] [NAME] [flags]”,其中各部分的简要说明如下:

  1. command:对资源执行相应操作的子命令,如get、create、delete、run等;常用的核心子命令如表3-1所示。
  2. TYPE:要操作的资源对象的类型,如 pods、services 等;类型名称区分字符大小写,但支持使用简写格式。
  3. NAME:对象名称,区分字符大小写;省略时,则表示指定TYPE的所有资源对象;另外,也可以直接使用“TYPE/NAME”的格式来表示资源对象。
  4. flags:命令行选项,如“-s”或“--server”;另外,get等命令再输出时还有一个常用的标志-o <format>用于指定输出格式,如表3-1所示:

命令命令类别功能说明
create基础命令(初级)通过文件或标准输入创建资源
expose基于rc、service、deployment或pod创建service资源
run通过创建Deployment在集群中运行指定的镜像
set设置指定资源的特定属性
get基础命令(中级)显示一个或多个资源
explain打印资源文档
edit编辑资源
delete基于文件名、stdin、资源或名字,以及资源和选择器删除资源
rollout部署命令管理资源的滚动更新
rollout-update对ReplicationController执行滚动升级
scale伸缩 Deployment、ReplicaSet、RC 或 Job 的规模
autoscale对 Deployment、ReplicaSet 或 RC 进行自动伸缩
certificate集群管理命令配置数字证书资源
cluster-info打印集群信息
top打印资源(CPU/Memory/Storage)使用率
cordon将指定node设定为“不可用”(unschedulable)状态
uncordon将指定node设定为“可用”(schedulable)状态
drain“排干”指定的node的负载以进入“维护”模式
taint为node声明污点及标准行为
describe排错及调试命令显示指定资源或资源组的详细信息
logs显示一个Pod内某容器的日志
attach附加终端至一个运行中的容器
exec在容器中执行指定命令
port-forward将本地的一个或多个端口转发至指定的Pod
proxy创建能够访问Kuberntes API Server的代理
cp在容器间复制文件和目录
auth打印授权信息
apply高级命令基于文件或stdin将配置应用于资源
patch使用策略合并补丁更新资源字段
replace基本文件或stdin替换一个资源
convert为不同的API版本转换配置文件
label设置命令更新指定资源的label
annotate更新资源的annotation
completion输出指定的shell(如bash)的补全码
version其他命令打印 Kubernetes 服务端和客户端的版本信息
api-version以“group/version”格式打印服务器支持的API版本信息
config配置 kubeconfig 文件的内容
plugin运行命令行插件
help打印任一命令的帮助信息

kubectl 命令还包含了多种不同的输出格式(如表3-2所示),它们为用户提供了非常灵活的自定义输出机制,如输出为YAML或JSON格式等。

输出格式 格式说明
-o wide 显示资源的额外信息
-o name 仅打印资源的名称
-o yaml YAML格式化输出API对象信息
-o json JSON格式化输出API对象信息
-o go-template 以自定义的go模板格式化输出API对象信息
-o custom-columns 自定义要输出的字段

此外,kubectl 命令还有许多通用的选项,这个可以使用“kubectl options”命令来获取。下面列举几个比较常用命令。

  • -s 或 --server:指定API Server的地址和端口
  • --kubeconfig: 使用的kubeconfig文件路径,默认为~/.kube/config
  • --namespace:命令执行的目标空间名称

kubectl 的部分在第二章已经多次提到,余下的大多数命令在后续的章节中还会用到,对于它们的使用说明也将在首次用到时进行展开说明。

results matching ""

    No results matching ""