专栏首页容器计算自定义方便kubectl中pods的管理

自定义方便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}'"

grepawk 不熟悉的同学请千万不要去百度谷歌,因为这样会造成依赖,每次一用就去搜,用完过几天就忘,我的建议是直接看命令的手册,这里举个 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 脚本定期去删除,那就更好了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • spark shell 配置 Kryo 序列化

    Spark 默认使用 Java Serialization 作为序列化方式,但是这种序列化方式一般会被认为性能和效率一般。因此 Spark 官方是推荐使用 Kr...

    runzhliu
  • Spark on Kubernetes PodTemplate 的配置

    本文主要讲 Apache Spark 在 on Kubernetes 的 PodTemplate 的问题,以及也会讲到 Spark Operator 里关于 P...

    runzhliu
  • 在 K8S 部署一个 Spark History Server - 篇2

    之前我们组在生产环境上部署的是 Spark 2.2 on k8s 的那个 fork,部署在 K8S 上,至少需要一个 Dockerfile,最近有计划升级到 3...

    runzhliu
  • 20120918-双向链表类定义《数据结构与算法分析》

    将新的节点插入双向链表的时候: iterator insert(iterator itr,const Object & x)//向双向链表中插入一个x节点 { ...

    用户1154259
  • Android LiveData 使用详解

    本次推出 Android Architecture Components 系列文章,目前写好了四篇,主要是关于 lifecycle,livedata 的使用和...

    用户2965908
  • 自定义短标签

    在markdown文件中可以使用video标签,来完成视频的内嵌,但是hugo无法将该标签渲染成为正常的h5的video标签

    caoayu
  • 虚拟内存探究 -- 第三篇:一步一步画虚拟内存图

    这是虚拟内存系列文章的第三篇。 前面我们提到在进程的虚拟内存中可以找到哪些东西,以及在哪里去找。 本文我们将通过打印程序中不同元素内存地址的方式,一步一步细...

    coderhuo
  • ​基础光照模型! Cocos Creator 2D 光照!

    本文主要讲的是最基础的光照模型(冯氏光照模型(Phong Lighting Model)),是一种光照的简化模型。请务必记住以下几个英文单词,对学习研究非常有帮...

    白玉无冰
  • Docker 远程管理

    kongxx
  • ​C++ STL源码剖析之知其然,知其所以然,源码面前了无秘密!

    本节使用上节Traits特性,研究iterator源码,来实现一个简单的iterator_category,同时对iterator的源码结构进行分析。

    公众号guangcity

扫码关注云+社区

领取腾讯云代金券