

介绍一个小工具:Kubedog
source link: https://www.tuicool.com/articles/Ir22i2q
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Kubedog 是一个开源的 Golang 项目,使用 watch 方式对 Kubernetes 资源进行跟踪,能够方便的用于日常运维和 CI/CD 过程之中,项目中除了一个 CLI 小工具之外,还提供了一组 SDK,用户可以将其中的 Watch 功能集成到自己的系统之中。安装过程非常简单,在项目网页直接下载即可。
Kubedog CLI 有两个功能: rollout track
和 follow
。
rollout track
在 Kubernetes 上运行应用时,通常的做法是使用 kubectl apply
提交 YAML 之后,使用 kubectl get -w
或者 watch kubectl get
之类的命令等待 Pod 启动。如果启动成功,则进行测试等后续动作;如果启动失败,就需要用 kubectl logs
、 kubectl describe
等命令来查看失败原因。kubedog 能在一定程度上简化这一过程。
例如使用 kubectl run
命令创建一个新的 Deployment 资源,并使用 kubedog
跟进创建进程:
$ kubectl run nginx --image=nginx22 ... deployment.apps/nginx created $ kubedog rollout track deployment nginx # deploy/nginx added # deploy/nginx rs/nginx-6cc78cbf64 added # deploy/nginx po/nginx-6cc78cbf64-8pnjz added # deploy/nginx po/nginx-6cc78cbf64-8pnjz nginx error: ImagePullBackOff: Back-off pulling image "nginx22" deploy/nginx po/nginx-6cc78cbf64-8pnjz nginx failed: ImagePullBackOff: Back-off pulling image "nginx22" $ echo $? 130
很方便的看出,运行失败的状态及其原因,并且可以使用返回码来进行判断,方便在 Pipeline 中的运行。接下来可以使用 kubectl edit
命令编辑 Deployment,修改正确的镜像名称。然后再次进行验证:
$ kubectl edit deployment nginx deployment.extensions/nginx edited $ kubedog rollout track deployment nginx # deploy/nginx added # deploy/nginx rs/nginx-dbddb74b8 added # deploy/nginx po/nginx-dbddb74b8-x4nkm added # deploy/nginx event: po/nginx-dbddb74b8-x4nkm Pulled: Successfully pulled image "nginx" # deploy/nginx event: po/nginx-dbddb74b8-x4nkm Created: Created container # deploy/nginx event: po/nginx-dbddb74b8-x4nkm Started: Started container # deploy/nginx event: ScalingReplicaSet: Scaled down replica set nginx-6cc78cbf64 to 0 # deploy/nginx become READY $ echo $? 0
修改完成,重新运行 kubedog,会看到成功运行的情况,并且返回值也变成了 0。
follow
follow 命令的功能和 kubetail 的功能有少量重叠,可以用 Deployment/Job/Daemonset 等为单位,查看其中所有 Pod 的日志,例如前面用的 Nginx,如果有访问的话,就会看到如下结果:
$ kubedog follow deployment nginx # deploy/nginx appears to be ready # deploy/nginx rs/nginx-6cc78cbf64 added # deploy/nginx new rs/nginx-dbddb74b8 added # deploy/nginx rs/nginx-dbddb74b8(new) po/nginx-dbddb74b8-x4nkm added # deploy/nginx rs/nginx-6cc54845d9 added # deploy/nginx event: ScalingReplicaSet: Scaled up replica set nginx-6cc54845d9 to 1 # deploy/nginx rs/nginx-6cc54845d9(new) po/nginx-6cc54845d9-nhlvs added # deploy/nginx event: po/nginx-6cc54845d9-nhlvs Pulling: pulling image "nginx:alpine" # deploy/nginx event: po/nginx-6cc54845d9-nhlvs Pulled: Successfully pulled image "nginx:alpine" # deploy/nginx event: po/nginx-6cc54845d9-nhlvs Created: Created container # deploy/nginx event: po/nginx-6cc54845d9-nhlvs Started: Started container # deploy/nginx event: ScalingReplicaSet: Scaled down replica set nginx-dbddb74b8 to 0 # deploy/nginx become READY # deploy/nginx event: po/nginx-dbddb74b8-x4nkm Killing: Killing container with id docker://nginx:Need to kill Pod >> deploy/nginx rs/nginx-dbddb74b8 po/nginx-dbddb74b8-x4nkm nginx >> deploy/nginx rs/nginx-6cc54845d9(new) po/nginx-6cc54845d9-nhlvs nginx 127.0.0.1 - - [02/Jun/2019:11:35:08 +0000] "GET / HTTP/1.1" 200 612 "-" "Wget" "-" 127.0.0.1 - - [02/Jun/2019:11:35:11 +0000] "GET / HTTP/1.1" 200 612 "-" "Wget" "-"
项目地址
https://github.com/flant/kubedog
Recommend
-
77
10.28 rsync工具介绍10.29/10.30 rsync常用选项10.31 rsync通过ssh同步
-
32
这次要介绍的是一个用于验证 Kubernetes 对象文档结构的小工具: kubeval 。它能够对一个或多个 Kubernetes 或 OpenShift 的对象文档进行校验。它所依赖的 Schema 数据来自于 Open...
-
24
AppCode Stash 是一个构建在 Restic 基础之上的工具,用于备份 Kubernetes 上运行的有状态应用,它使用一个有趣的 Sidecar,能够方便的通过共享卷的方式来对 RWO...
-
33
1. top top是最常用的查看系统资源使用情况的工具,包括CPU、内存等等资源。 这里主要关注CPU资源。 1.1 /proc/...
-
5
SEO最佳免费关键词工具Ubersuggest介绍 2020年8月25日 | 最近更新于 下午11:29推荐平时在用的一个关键词工具Ubersuggest,Ubersuggest在之前和keywordtools.io一样只能给用户提供谷歌提示词,后来经过SEO大神Neil Patel收购之后做了很多优...
-
8
FastThread 相关的工具介绍:欲穷千里目,更上一层楼
-
25
一、PXE简介 PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,...
-
7
这个库是去年写的,主要用于结构体的校验。 比如字符串长度、数值大小、oneof,以及字符串的一些常见属性(email/url/ip)等。 项目的地址:https://github.com/miaomiao3/qvalid 因为不...
-
10
引子 跳过本节不影响阅读 既然是牛年第一篇,总要写点废话起个头。另外写小工具系列经常面对的一个难题就是——怎样凑够 300 字的原创门槛。 2020 年有大半年我都在唠叨云原生安全的事情,现在的情况按照我的理解,有...
-
5
通过kubedog助力应用部署的状态监测与打印 |坐而言不如起而行! 二丫讲梵 > 术业专攻 >
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK