二丫讲梵 二丫讲梵
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)

二丫讲梵

行者常至,为者常成
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)
  • Nexus系列文章

  • Jenkins系列文章

  • ELK笔记

  • Kubernetes笔记

    • 手动部署kubernetes-1-8-6集群

    • 其他姿势快速部署

    • 手动搭建k8s-1-10-4高可用集群(推荐版).md

    • 基础学习

    • 从新出发

      • 通过kubedog助力应用部署的状态监测与打印
        • 1,简述
        • 2,安装
        • 3,试用
          • 1,follow
          • 2,rollout
        • 4,实践
      • k8s集群接入了kubegems之后删除namespace报错kubegems-local-controller-webhook-not-found
      • k8s删除namespace之后状态一直为Terminating
      • kubectl-krew插件离线安装方案(保你成功)
  • LLM专题

  • 系列专题
  • Kubernetes笔记
  • 从新出发
二丫讲梵
2021-05-06
目录

通过kubedog助力应用部署的状态监测与打印

文章发布较早,内容可能过时,阅读注意甄别。

# 1,简述

  • 官方地址:https://github.com/werf/kubedog (opens new window)
  • 功能说明:Kubedog 是一个库,用于监视和跟踪 CI / CD 部署管道中的 Kubernetes 资源。同时它也提供了一个二进制 cli 程序,让我们能够快速通过命令行对刚刚构建成功的应用状态做一些观测与打印。

# 2,安装

官方在 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
1
2
3

添加环境变量,如果环境变量不固定,也可以在运行的时候通过参数 --kube-config 指定:

$ echo 'KUBEDOG_KUBE_CONFIG=/root/.kube/config' >> /etc/profile
$ source /etc/profile
1
2

查看参数:

$ 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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 3,试用

这里重要的两个参数是:follow,rollout,接下来通过示例分别体验一下两个参数。

# 1,follow

follow 可以跟踪资源从创建到 Ready 对外提供服务的整个过程,并将 pod 日志打印。

首先创建一个简单的示例程序:

$ kubectl apply  -f tools.yml
deployment.extensions/tools created
1
2

然后使用命令监听程序的事件:

$ 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
1
2
3
4
5

注意:这个参数进入的是终端的前台监听,不会退出终端。

# 2,rollout

rollout 与 follow 对比,不会输出 pod 运行日志,直接打印 pod 状态。

首先创建一个简单的示例程序:

$ kubectl apply  -f tools.yml
deployment.extensions/tools created
1
2

然后使用命令监听程序的事件:

$ $kubedog rollout track  -n test deployment tools
# deploy/tools become READY
$ echo $?
0
1
2
3
4

注意:我们通常可以判断这个命令的返回值来判断应用部署后的状态。另外一点就是这个命令不会在前台监听,而且在 Jenkins 流水线中,还会输出 pod 对应的日志内容。

img

# 4,实践

我们可以直接在构建命令后边添加如下命令示例:

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)
            }
        }
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

这样在应用部署之后,我们就可以很直观地观测到它在集群中的状态变化了。

具体日志这里就不做展示了。

微信 支付宝
上次更新: 2024/07/04, 22:40:37
k8s基本使用入门-了解Service
k8s集群接入了kubegems之后删除namespace报错kubegems-local-controller-webhook-not-found

← k8s基本使用入门-了解Service k8s集群接入了kubegems之后删除namespace报错kubegems-local-controller-webhook-not-found→

最近更新
01
学习周刊-总第213期-2025年第22周
05-29
02
学习周刊-总第212期-2025年第21周
05-22
03
从赵心童世锦赛夺冠聊聊我的斯诺克情缘
05-16
更多文章>
Theme by Vdoing | Copyright © 2017-2025 | 点击查看十年之约 | 浙ICP备18057030号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式