自定义方便kubectl中pods的管理
时间:2022-07-22
本文章向大家介绍自定义方便kubectl中pods的管理,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 Overview
我猜很多接触 K8S 的同学应该都是运维的同学为主,一般上来说,运维的同学写 Shell 显然是比 Java 程序员专业的,但是当大数据遇到 K8S 的时候,搞大数据的同学还在每条 kubectl 去操作实在是太浪费时间了。 在我学习的过程中,我会创建很多临时的 Pods,测试完其实这些 Pods 就没用了,或者说 Status 是 Error 或者 Complete 的 Pods 已经不是我学习的对象,想删掉,所以 kubectl get pods 的时候想显示少一点。 简单的办法就是用 Alias 来封装一下各种状态的显示。
2 Examples
以下是我利用 grep 和 awk 封装的两个 alias,可以参考一下。
alias getComplete="kubectl get pods | grep Completed | awk -F ' ' '{print $1}'"
alias getError="kubectl get pods | grep Error | awk -F ' ' '{print $1}'"
grep
和 awk
不熟悉的同学请千万不要去百度谷歌,因为这样会造成依赖,每次一用就去搜,用完过几天就忘,我的建议是直接看命令的手册,这里举个 awk
中 -F 的例子。
awk
NAME
awk - pattern-directed scanning and processing language
请注意 awk 的用法
SYNOPSIS
awk [ -F fs ] [ -v var=value ] [ 'prog' | -f progfile ] [ file ... ]
请注意看手册,这里的 -F 的作用是什么,就是做分隔符,并且支持正则表达式
DESCRIPTION
Awk scans each input file for lines that match any of a set of patterns specified literally in prog or in one or more files
specified as -f progfile. With each pattern there can be an associated action that will be performed when a line of a file
matches the pattern. Each line is matched against the pattern portion of every pattern-action statement; the associated action
is performed for each matched pattern. The file name - means the standard input. Any file of the form var=value is treated as
an assignment, not a filename, and is executed at the time it would have been opened if it were a filename. The option -v fol-
lowed by var=value is an assignment to be done before prog is executed; any number of -v options may be present. The -F fs
option defines the input field separator to be the regular expression fs.
有了这两个 alias 之后,我们就可以把他加到 .bash_profile 中,以后调用的时候就只要这个 alias 就好了。
➜ ~ getError
spark-pi-37d1f76b946d7c0f-driver
➜ ~ getComplete
group-by-test-1560763907118-driver
hdfs-test-driver
spark-driver-2.3
spark-hdfs-1561689711995-driver
spark-hdfs-1561689794687-driver
spark-hdfs-1561689834591-driver
spark-hdfs-1561689875798-driver
spark-hdfs-1561690011058-driver
spark-hdfs-1561690211210-driver
spark-hdfs-1561691706756-driver
spark-hdfs-1561700636764-driver
spark-pi-064dbc6e21463c7cb72a82f8b9d0c1ab-driver
spark-pi-1e4bae6b95fe78d9-driver
spark-pi-driver
然后比如说你想删除这些你不需要再研究的某种状态的 Pods。
➜ ~ getError | xargs kubectl delete pods
pod "spark-pi-37d1f76b946d7c0f-driver" deleted
➜ ~ getComplete | xargs kubectl delete pods
pod "group-by-test-1560763907118-driver" deleted
pod "hdfs-test-driver" deleted
pod "spark-driver-2.3" deleted
pod "spark-hdfs-1561689711995-driver" deleted
pod "spark-hdfs-1561689794687-driver" deleted
pod "spark-hdfs-1561689834591-driver" deleted
pod "spark-hdfs-1561689875798-driver" deleted
pod "spark-hdfs-1561690011058-driver" deleted
pod "spark-hdfs-1561690211210-driver" deleted
pod "spark-hdfs-1561691706756-driver" deleted
pod "spark-hdfs-1561700636764-driver" deleted
pod "spark-pi-064dbc6e21463c7cb72a82f8b9d0c1ab-driver" deleted
pod "spark-pi-1e4bae6b95fe78d9-driver" deleted
pod "spark-pi-driver" deleted
3 Summary
删掉了一堆没用的 Pods 之后,一下就清爽了,其实通过 dashboard 来删除也可以,只是说需要一个个点,效率很低,简单写几个通用的 alias 甚至更高级点的写个 shell 脚本定期去删除,那就更好了。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 设计模式(四):通过做蛋糕理解构建模式及Android中的变种
- 如何入门使用腾讯云物联网开发平台 IoT Explorer,开发一盏智慧城市的智能灯?
- 知道吗?容器镜像也可以延迟拉取!
- ansible超详细讲解,值得收藏
- 实战渗透 - 一个怎么够?我全都要!
- 详解 Numpy 中的视图和副本
- 详解 matplotlib 中的两种标注方法
- 混搭 TypeScript + GraphQL + DI + Decorator 风格写 Node.js 应用
- 彻底搞懂闭包,柯里化,手写代码,金九银十不再丢分!
- Kubernetes控制器--副本集ReplicaSet
- Awesome Kubernetes 系列:第一期
- Mongodb多键索引之数组文档
- 在 Cocos Creator 里画个炫酷的雷达图
- 用shader做一个柿子颜色的过场动画
- mysql 找出最新时间的一条数据