

通过kubedog助力应用部署的状态监测与打印
source link: http://www.eryajf.net/5383.html
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.

- 官方地址:https://github.com/werf/kubedog
- 功能说明:Kubedog是一个库,用于监视和跟踪CI / CD部署管道中的Kubernetes资源。同时它也提供了一个二进制cli程序,让我们能够快速通过命令行对刚刚构建成功的应用状态做一些观测与打印。
官方在github已经放置了不同系统的二进制文件,直接下载添加权限即可使用,可谓开箱即用。
$ wget https://storage.yandexcloud.net/kubedog/targets/releases/v0.5.0/kubedog-linux-amd64-v0.5.0
$ mv kubedog-linux-amd64-v0.5.0 /usr/bin/kubedog
$ chmod +x /usr/bin/kubedog
添加环境变量,如果环境变量不固定,也可以在运行的时候通过参数 --kube-config
指定:
$ echo 'KUBEDOG_KUBE_CONFIG=/root/.kube/config' >> /etc/profile
$ source /etc/profile
查看参数:
$ kubedog -h
Usage:
kubedog [command]
Available Commands:
follow
help Help about any command
multitrack Track multiple resources using multitrack tracker
rollout
version
Flags:
-h, --help help for kubedog
--kube-config string Path to the kubeconfig file (can be set with $KUBEDOG_KUBE_CONFIG).
--kube-context string The name of the kubeconfig context to use (can be set with $KUBEDOG_KUBE_CONTEXT).
--logs-since string A duration like 30s, 5m, or 2h to start log records from the past. 'all' to show all logs and 'now' to display only new records (default). (default "now")
-n, --namespace string If present, the namespace scope of a resource. (default "default")
--output-prefix string Arbitrary string which will be prefixed to kubedog output.
-t, --timeout int Timeout of operation in seconds. 0 is wait forever. Default is 0. (default -1)
Use "kubedog [command] --help" for more information about a command.
这里重要的两个参数是:follow
,rollout
,接下来通过示例分别体验一下两个参数。
1,follow
follow可以跟踪资源从创建到Ready对外提供服务的整个过程,并将pod日志打印。
首先创建一个简单的示例程序:
$ kubectl apply -f tools.yml
deployment.extensions/tools created
然后使用命令监听程序的事件:
$ kubedog follow -n test deployment tools
# deploy/tools added
# deploy/tools rs/tools-55887db99 po/tools-55887db99-h5knt added
# deploy/tools new rs/tools-55887db99 added
# deploy/tools become READY
注意
:这个参数进入的是终端的前台监听,不会退出终端。
2,rollout
rollout与follow对比,不会输出pod运行日志,直接打印pod状态。
首先创建一个简单的示例程序:
$ kubectl apply -f tools.yml
deployment.extensions/tools created
然后使用命令监听程序的事件:
$ $kubedog rollout track -n test deployment tools
# deploy/tools become READY
$ echo $?
0
注意
:我们通常可以判断这个命令的返回值来判断应用部署后的状态。另外一点就是这个命令不会在前台监听,而且在Jenkins流水线中,还会输出pod对应的日志内容。
我们可以直接在构建命令后边添加如下命令示例:
stage('基于文件部署') {
when {
environment name: 'BUILD_AS_FILE',value: 'true'
}
steps {
dir("$WORKSPACE/deploy-k8s-yaml"){
script {
try {
ansiColor('xterm') {
configFileProvider([configFile(fileId: "${K8S_AUTH}", targetLocation: "admin.kubeconfig")]){
sh """
kubectl --kubeconfig admin.kubeconfig apply -f $WORKSPACE/deploy-k8s-yaml/${YAML_PATH}/${SERVICE_NAME}.yaml
kubedog --kube-config admin.kubeconfig rollout track -n ${DEPLOY_ENV} deployment ${SERVICE_NAME}
"""
}
}
}catch(exc) {
env.REASON = "基于YAML文件部署出错"
throw(exc)
}
}
}
}
}
这样在应用部署之后,我们就可以很直观地观测到它在集群中的状态变化了。
具体日志这里就不做展示了。

Recommend
-
50
Kubedog 是一个开源的 Golang 项目,使用 watch 方式对 Kubernetes 资源进行跟踪,能够方便的用于日常运维和 CI/CD 过程之中,项目中除了一个 CLI 小工具之外,还提供了一组 SDK,用...
-
35
tags: java, troubleshooting, monitor 一句话概括:java应用监测,为什么?监测什么?如何监测?本文为你解答。 1 引言:为什么需要监测java应用 java开发人员都知道,启动java应用使用的是 j...
-
46
tags: java, troubleshooting, monitor,jvm 一句话概括:原来jdk自带的命令行工具如此好用,本文将详细介绍。 1 引言 监测java应用,最方便的就是直接使用jdk提供的现成工具,在jdk的安装的bin目录下,已经...
-
21
本文来源: Serverles...
-
9
燃气监测设备助力城市燃气管网安全运行 来源:光明网2021-08-11 15:57 ...
-
8
使用WGCLOUD监测网站状态并告警发布于 18 分钟前我们的网站在运行中,偶尔会有一些问题出现,比如不能访问,机房停电了等,都会导致我们的网站停止服务,用户无法使...
-
9
不知道有多少玩家像我一样,每天多次打开V2P查看脚本运行情况,担心脚本运行不正常以及补充看看赚、浏览赚body。 传统情况下,为了查看运行状态我们只能在docker运行窗口进行查看,或者点开V2P运行日志进行排查,但通过对V2P官方教程的学习我找到了新的...
-
6
在进行深度学习实验时,GPU 的实时状态监测十分有必要。 nvidia-smi上图是服务器上 GeForce GTX 1080 Ti 的信息,下面对各个字段(参数)的含义进行详细介绍。 GPU: GPU 编号 Fan: 风扇转速(0% ~ 100%) Name:...
-
4
Azure DevOps (十三) 通过Azure Devops部署一个Go的Web应用 ...
-
3
苹果 Apple Watch 新专利:通过监测汗液提供实用生理数据|传感器|苹果公司|财务会计|财务报表|apple watch_网易订阅 IT之家 2 月 16 日消息,根据美国商标和...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK