kubectl常用命令

基础命令:create,delete,get,run,expose,set,explain,edit。

create命令:根据文件或者输入来创建资源

delete命令:删除资源

get命令:获得资源信息

run命令:在集群中创建并运行一个或多个容器镜像。

expose命令:创建一个service服务,并且暴露端口让外部可以访问

set命令: 配置应用的一些特定资源,也可以修改应用已有的资源

kubectl set resources 命令

这个命令用于设置资源的一些范围限制。

资源对象中的Pod可以指定计算资源需求(CPU-单位m、内存-单位Mi),即使用的最小资源请求(Requests),限制(Limits)的最大资源需求,Pod将保证使用在设置的资源数量范围。

对于每个Pod资源,如果指定了Limits(限制)值,并省略了Requests(请求),则Requests默认为Limits的值。

可用资源对象包括(支持大小写):replicationcontroller、deployment、daemonset、job、replicaset。

例如:

kubectl set selector命令

设置资源的selector(选择器)。如果在调用"set selector"命令之前已经存在选择器,则新创建的选择器将覆盖原来的选择器。

selector必须以字母或数字开头,最多包含63个字符,可使用:字母、数字、连字符" - " 、点"."和下划线" _ "。如果指定了--resource-version,则更新将使用此资源版本,否则将使用现有的资源版本。

注意:目前selector命令只能用于Service对象。

kubectl set image命令

​ 用于更新现有资源的容器镜像。

可用资源对象包括:pod (po)、replicationcontroller (rc)、deployment (deploy)、daemonset (ds)、job、replicaset (rs)。

explain命令:用于显示资源文档信息

edit命令:用于编辑资源信息

设置命令:label,annotate,completion

label命令:用于更新(增加、修改或删除)资源上的 label(标签)

  • label 必须以字母或数字开头,可以使用字母、数字、连字符、点和下划线,最长63个字符。

  • 如果--overwrite 为 true,则可以覆盖已有的 label,否则尝试覆盖 label 将会报错。

  • 如果指定了--resource-version,则更新将使用此资源版本,否则将使用现有的资源版本。

annotate命令:更新一个或多个资源的Annotations信息。也就是注解信息,可以方便的查看做了哪些操作。

  • Annotations由key/value组成。

  • Annotations的目的是存储辅助数据,特别是通过工具和系统扩展操作的数据,更多介绍在这里

  • 如果--overwrite为true,现有的annotations可以被覆盖,否则试图覆盖annotations将会报错。

  • 如果设置了--resource-version,则更新将使用此resource version,否则将使用原有的resource version。

completion命令:用于设置kubectl命令自动补全

kubectl 部署命令:rollout,rolling-update,scale,autoscale

rollout命令:用于对资源进行管理

可用资源包括:deployments,daemonsets。

子命令:

rolling-update命令:执行指定ReplicationController的滚动更新。

该命令创建了一个新的RC, 然后一次更新一个pod方式逐步使用新的PodTemplate,最终实现Pod滚动更新,new-controller.json需要与之前RC在相同的namespace下。

scale命令:扩容或缩容 Deployment、ReplicaSet、Replication Controller或 Job 中Pod数量

scale也可以指定多个前提条件,如:当前副本数量或 --resource-version ,进行伸缩比例设置前,系统会先验证前提条件是否成立。这个就是弹性伸缩策略

autoscale命令: 这个比scale更加强大,也是弹性伸缩策略 ,它是根据流量的多少来自动进行扩展或者缩容

指定Deployment、ReplicaSet或ReplicationController,并创建已经定义好资源的自动伸缩器。使用自动伸缩器可以根据需要自动增加或减少系统中部署的pod数量。

集群管理命令:certificate,cluster-info,top,cordon,uncordon,drain,taint

certificate命令:用于证书资源管理,授权等

cluster-info命令:显示集群信息

top命令:用于查看资源的cpu,内存磁盘等资源的使用率

cordon命令:用于标记某个节点不可调度

uncordon命令:用于标签节点可以调度

drain命令: 用于在维护期间排除节点。

taint命令:参见:https://blog.frognew.com/2018/05/taint-and-toleration.html

集群故障排查和调试命令:describe,logs,exec,attach,port-foward,proxy,cp,auth

describe命令:显示特定资源的详细信息

logs命令:用于在一个pod中打印一个容器的日志,如果pod中只有一个容器,可以省略容器名

exec命令:进入容器进行交互,在容器中执行命令

attach命令:连接到一个正在运行的容器。

cp命令:拷贝文件或者目录到pod容器中

用于pod和外部的文件交换,类似于docker 的cp,就是将容器中的内容和外部的内容进行交换。

其他命令:api-servions,config,help,plugin,version

api-servions命令:打印受支持的api版本信息

help命令:用于查看命令帮助

config:用于修改kubeconfig配置文件(用于访问api,例如配置认证信息)

version命令:打印客户端和服务端版本信息

plugin命令:运行一个命令行插件

高级命令:apply,patch,replace,convert

apply命令: 通过文件名或者标准输入对资源应用配置

通过文件名或控制台输入,对资源进行配置。 如果资源不存在,将会新建一个。可以使用 JSON 或者 YAML 格式。

patch命令: 使用补丁修改,更新资源的字段,也就是修改资源的部分内容

replace命令: 通过文件或者标准输入替换原有资源

convert命令: 不同的版本之间转换配置文件

以上就是k8s的一些基本命令。

最后更新于