K8S命令的梳理

K8S命令的梳理

kubectl是一个基础的K8S集群管理命令,可以实现对K8S资源的查询,创建,删除,更新,回退等各种各样的操作。由于其复杂的功能体系,命令灵活度又高,因此需要进行常见的一些命令和使用场景的梳理。

1 K8S命令的组成

K8S基础命令由三段式组成:

kubectl 动作 资源 [选项]

2 K8S命令的基础动作

常见的K8S命令有8个动作。分别是:

  • get:展示一个或者多个资源
  • create:通过资源配置文件名或者键盘输入创建资源
  • expose:选择一个RC,Service,Deployment或者Pod,并且暴露为新的K8s服务
  • run:在集群上运行指定镜像
  • set:在对象上设置指定属性
  • explain:资源的文档
  • edit:编辑服务器上的资源
  • delete:通过资源创建的文件名,键盘输入,资源名,或者选择器标签等删除资源

此外,kubectl还提供了一些高级的用法。在日常开发中除非特定的场景,否则一般不会用到。这些命令包括:

  • 部署类的命令
    • rollout:管理deployment的部署
    • rolling-update:实现滚动升级,并最终输出RC
    • scale:为Deployment, ReplicaSet, RC或者Job设置新的大小
    • autoscale:自动伸缩Deployment, ReplicaSet, ReplicationController
  • 集群管理类的命令
    • certificate:修改认证资源
    • cluster-info:显示集群信息
    • top:显示(CPU/Memory/Storage)资源的使用
    • cordon:标记节点为unschedulable
    • uncordon:标记节点为schedulable
    • drain:Drain node in preparation for maintenance
    • taint:Update the taints on one or more nodes
  • 故障定位和排除类的命令
    • describe:显示指定资源或者资源组的详情
    • logs:打印某个pod中容器的日志
    • attach:附加在一个运行的容器上执行,使用该命令注意不要关闭容器并退出
    • exec:在一个容器中执行命令,不影响现在运行的容器中的功能
    • port-forward:转发一个或者多个端口到pod中
    • proxy:运行porxy以实现到Kubernetes API server的功能转发
    • cp:与容器之间进行文件拷贝
  • 其他更高级的命令
    • apply:Apply a configuration to a resource by filename or stdin
    • patch:Update field(s) of a resource using strategic merge patch
    • replace:Replace a resource by filename or stdin
    • convert:Convert config files between different API versions
  • 设置命令
    • label:Update the labels on a resource
    • annotate:Update the annotations on a resource
    • completion:Output shell completion code for the given shell (bash or zsh)
  • 其他的系统级命令
    • api-versions:以group/version的形式打印服务器上支持的API版本
    • config:修改kubeconfig文件
    • help:帮助命令
    • version:打印客户端和服务器的版本号

2.1 基础动作 get 的命令

get 是kubectl中最基础的命令,也是使用最多的命令。
该命令的使用格式如下:

get 资源 [选项]

因此,使用改命令需要首先分清楚,paas上到底有多少中资源类型。那么,paas上面有多少中资源呢?

2.1.1 get命令中的资源类型

请见下表(需要区分的是,kubectl工具中认为的资源,并不等同于k8s上面可以创建出的与pod相关的资源类型)

序号 资源 资源缩写
1 cloud cld
2 clusters 只有在联邦apiservers下才合法
3 componentstatuses cs
4 configmaps cm
5 daemonsets ds
6 deployments deploy
7 endpoints ep
8 events ev
9 horizontalpodautoscalers hpa
10 ingresses ing
11 jobs -
12 limitranges limits
13 namespaces ns
14 networks net
15 networkmappings nm
16 networkpolicies -
17 nodes no
18 persistentvolumeclaims pvc
19 persistentvolumes pv
20 physicalnetworks pn
21 processlifecycles plc
22 pods po
23 podsecuritypolicies psp
24 podtemplates -
25 replicasets rs
26 replicationcontrollers rc
27 resourcequotas quota
28 secrets -
29 serviceaccounts sa
30 services svc
31 statefulsets -
32 storageclasses -
33 thirdpartyresources -
34 clusterversions -

2.1.2 几个常用的get命令组合

使用get 命令需要注意的一点是:该命令会隐藏一些资源信息,如运行情况等。要显示这些信息,可以通过在命令最后加上--show-all 标记进行实现。

get 的几个常用命令组合:

  1. 显示所有的pod信息,格式如linux下的ps命令(精简)
kubectl get pods
  1. 全面显示pod 信息,增加 -o wide选项
kubectl get pods -o wide
  1. 查看单个指定RC名称的信息
kubectl get replicationcontroller web
  1. 使用json格式展示指定的pod信息
kubectl get -o json pod web-pod-13je7
  1. 把yaml形式的pod信息展示位json格式
kubectl get -f pod.yaml -o json
  1. 查看指定pod信息中的某一段
kubectl get -o template pod/web-pod-13je7 --template={{.status.phase}}
  1. 同时输出所有的RC和service资源实例列表
kubectl get rc,services
  1. 通过资源类型和名字获取具体的实例信息
kubectl get rc/web service/frontend pods/web-pod-13je7

2.1.3 get中的重要选项

  1. 跨命名空间查询对象
--all-namespaces=false
  1. 指定配置文件名
    使用-f或者--filename=[]

  2. 指定输出格式
    使用-o或者--output=''指定输出格式,输出格式必须为下表中的一个

  1. 显示所有的输出信息
    -a选项可以输出所有的信息。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,372评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,368评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,415评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,157评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,171评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,125评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,028评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,887评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,310评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,533评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,690评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,411评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,004评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,812评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,693评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,577评论 2 353

推荐阅读更多精彩内容