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:打印客户端和服务器的版本号
- api-versions:以
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 的几个常用命令组合:
- 显示所有的pod信息,格式如linux下的ps命令(精简)
kubectl get pods
- 全面显示pod 信息,增加
-o wide选项
kubectl get pods -o wide
- 查看单个指定RC名称的信息
kubectl get replicationcontroller web
- 使用json格式展示指定的pod信息
kubectl get -o json pod web-pod-13je7
- 把yaml形式的pod信息展示位json格式
kubectl get -f pod.yaml -o json
- 查看指定pod信息中的某一段
kubectl get -o template pod/web-pod-13je7 --template={{.status.phase}}
- 同时输出所有的RC和service资源实例列表
kubectl get rc,services
- 通过资源类型和名字获取具体的实例信息
kubectl get rc/web service/frontend pods/web-pod-13je7
2.1.3 get中的重要选项
- 跨命名空间查询对象
--all-namespaces=false
指定配置文件名
使用-f或者--filename=[]指定输出格式
使用-o或者--output=''指定输出格式,输出格式必须为下表中的一个
jsonyamlwidenamecustom-columns=...,具体信息可以查看:http://kubernetes.io/docs/user-guide/kubectl-overview/#custom-columnscustom-columns-file=...go-template=...,具体信息可以查看http://golang.org/pkg/text/template/#pkg-overviewgo-template-file=...jsonpath=...,具体信息可以查看http://kubernetes.io/docs/user-guide/jsonpathjsonpath-file=...
- 显示所有的输出信息
-a选项可以输出所有的信息。
K8S命令的梳理的更多相关文章
- 常用rsync命令操作梳理
作为一个运维工程师,经常可能会面对几十台.几百台甚至上千台服务器,除了批量操作外,环境同步.数据同步也是必不可少的技能.说到“同步”,不得不提的利器就是rsync.rsync不但可以在本机进行文件同步 ...
- k8s 命令
Kubernetes 常用安装和使用命令总结 获取所有命名空间上的pod kubectl get pod -o wide --all-namespaces 查看pod IP时使用 kubectl ge ...
- k8s命令行web代理神器gotty
目录 介绍 安装 使用示例 -p 指定端口 -c 指定账号密码 -w 支持tty交互 --permit-arguments 支持get参数传参 --random-url 生成随机地址 --reconn ...
- k8s命令补全方法
正常安装了k8s后,使用kubect 工具后接的命令不能直接tab补全 命令补全方法: yum -y install bash-completionsource /usr/share/bash-com ...
- K8S命令-Kubectl 命令大全
参考1:https://jimmysong.io/kubernetes-handbook/guide/kubectl-cheatsheet.html?h=kubectl Kubctl 命令是操作 ku ...
- k8s命令集锦
集群环境相关命令$kubectl vertion --short=true #显示当前使用的客户端及服务端程序版本信息$kubectl cluster-info #获取集群信息$kubectl api ...
- k8s命令自动补全
Linux yum install -y bash-completion source /usr/share/bash-completion/bash_completion source <(k ...
- K8S命令大总结
一.k8s-kubectl命令大全 Kubectl命令行管理对象类型 命令 描述 基础命令 create 通过文件名或标准输入创建资源. expose 将一个资源公开为一个新的Kubernetes服务 ...
- k8s 命令创建pod
[root@master kubernetes]# kubectl create deploy ngx-dep --image=nginx:1.14-alpine deployment.apps/ng ...
随机推荐
- LLppdd has a dream!
LLppdd has a dream Time Limit: 3 s Memory Limit: 256 MB 题目背景 LLppdd经过他充满坎坷的初三后,他的成绩也充满了坎坷. 临近中考了,他希望 ...
- window 下总是object_detection/protos/*.proto: No such file or directory
这是因为目前的protoc3.5有Bug,换成3.4就好了https://github.com/google/protobuf/releases/tag/v3.4.0
- Android Service完全解析(上)
转载:http://blog.csdn.net/guolin_blog/article/details/11952435 相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的Androi ...
- linux sed删除^M换行符以及^[[转义字符
1. 删除文档中的蓝色转义字符^M 注意:^M 不能从键盘输入^和M,也不能复制.而是需要按Ctrl+v 然后再按Ctrl+M 按Ctrl+v的时候屏幕不会输出,再按下Ctrl+M的时候即会出现^M ...
- 视频专家之路【四】:ffmpeg简单实战之获取属性
本文是听了雷宵骅大神的课之后的总结,部分内容借用了其PPT的内容,如有侵权请告知删除. 雷宵骅大神的博客为:https://blog.csdn.net/leixiaohua1020 本节的目的正式开始 ...
- 【CSS】div的背景图完整图片覆盖
最初的代码: .container_first { width: 100%; height: 100%; background: url(10176581.jpg); background-size: ...
- Eclipse中发布Maven管理的Web项目时找不到类的问题根源和解决办法(转)
转自:http://blog.csdn.net/lvguanming/article/details/37812579?locationNum=12 写在前面的话 现在是越来越太原讨厌Eclipse这 ...
- python_django_富文本
下载富文本: pip install django-tinymce 一.配置 在settings.py文件INSTALLED_APPS中添加:'tinymce': 二.应用 1.在admin中使用 a ...
- 源码方式安装 lrzsz库
源码方式安装 lrzsz库:https://www.cnblogs.com/cocoajin/p/11731787.html 我们都知道安装了lrzsz工具的linux系统环境,在shell里可以非常 ...
- 【NOIP2019模拟2019.9.4】B(期望的线性性)
题目描述: \(1<=n,ai<=5*10^5\) 题解: 我是弱智我不会期望线性. 设\(E(a[i])\)表示第i个期望被减的个数. \(E(a[1])=a[1]\) 不难发现\(E( ...