helm-chart7,调试与hook
调试
几个命令可以帮助进行调试
helm lint 首选工具,返回错误和警告信息。
helm install --dry-run --debug:服务器会渲染你的模板,然后返回结果清单文件。
helm get manifest:这是查看服务器上安装的模板的方法。
如果yaml文件没有解析,想看看生成了什么时,检查yaml文件一个简单方法是注释模板中的问题部分,然后重新运行helm install --dry-run --debug
hooks
hook 机制,为允许在release的生命周期中的某些点进行干预,执行一些操作,比如 备份数据库,确保先后顺序等。
可用的hook 节点:
预安装pre-install::在模板渲染后执行,但在Kubernetes中创建任何资源之前执行。
安装后post-install:在所有资源加载到Kubernetes后执行
预删除pre-delete:在从Kubernetes删除任何资源之前执行删除请求。
删除后post-delete:删除所有release的资源后执行删除请求。
升级前pre-upgrade:在模板渲染后,但在任何资源加载到Kubernetes之前执行升级请求(例如,在Kubernetes应用操作之前)。
升级后post-upgrade:在所有资源升级后执行升级。
预回滚pre-rollback:在渲染模板之后,但在任何资源已回滚之前,在回滚请求上执行。
回滚后post-rollback:在修改所有资源后执行回滚请求。
hook 的任务执行的时候,Tiller会阻塞;任务执行失败,则应用发布失败。
hook 具有权重,以数字表示,可为负。当一个hook声明了多个资源时,这些资源将被串行执行。如果他们有hook权重,他们按照加权顺序执行。
Hook创建的资源不作为release的一部分进行跟踪或管理。一旦Tiller验证hook已经达到其就绪状态,就不再跟踪它了,即无法再对其进行操作。所以hook 创建的资源,无法使用 helm delete 删除。可以在hook 中同时写上删除的代码,或者指定其删除策略:"helm.sh/hook-delete-policy"
"hook-succeeded": 指定Tiller应该在hook成功执行后删除hook。
"hook-failed": 指定如果hook在执行期间失败,Tiller应该删除hook。
"before-hook-creation": 指定Tiller应在删除新hook之前删除以前的hook。
同时制定两个:"helm.sh/hook-delete-policy": "hook-succeeded,hook-failed"
hook 示例:
apiVersion: batch/v1
kind: Job
metadata:
name: "{{.Release.Name}}"
labels:
heritage: {{.Release.Service | quote }}
release: {{.Release.Name | quote }}
chart: "{{.Chart.Name}}-{{.Chart.Version}}"
annotations: # hook 声明
# This is what defines this resource as a hook. Without this line, the
# job is considered part of the release.
"helm.sh/hook": post-install
"helm.sh/hook-weight": "-5"
"helm.sh/hook-delete-policy": hook-succeeded
spec: # hook hook 资源,任务:起镜像,sleep 十秒。
template:
metadata:
name: "{{.Release.Name}}"
labels:
heritage: {{.Release.Service | quote }}
release: {{.Release.Name | quote }}
chart: "{{.Chart.Name}}-{{.Chart.Version}}"
spec:
restartPolicy: Never
containers:
- name: post-install-job
image: "alpine:3.3"
command: ["/bin/sleep","{{default "10" .Values.sleepyTime}}"]
一个资源可以有多个hook:
annotations:
"helm.sh/hook": post-install,post-upgrade
helm-chart7,调试与hook的更多相关文章
- 《逆向工程核心原理》——通过调试方式hook Api
1.附加目标进程, 2.CREATE_PROCESS_DEBUG_EVENT附加事件中将目标api处设置为0xcc(INT 3断点) 3.EXCEPTION_DEBUG_EVENT异常事件中,首先判断 ...
- Helm包管理
Helm Kubernetes 包管理工具 Helm 可以帮助我们管理 Kubernetes 应用程序 - Helm Charts 可以定义.安装和升级复杂的 Kubernetes 应用程序,Char ...
- Win7 x86内核调试与TP反调试的研究
参考 这两天对某P双机调试的学习及成果 ,非常好的一篇分析贴. 本文在Win7 x86下的分析,在虚拟机中以/DEBUG模式启动TP游戏,系统会自动重启. 0x01 内核调试全局变量 根据软件调试 ...
- Linux Hook 笔记
相信很多人对"Hook"都不会陌生,其中文翻译为"钩子".在编程中, 钩子表示一个可以允许编程者插入自定义程序的地方,通常是打包好的程序中提供的接口. 比如,我 ...
- Android 天猫apk聊天数据库解密
1.使用Android 天猫apk 进行聊天会产生tmallWangXinDB的数据库.2.用sqlite3 工具打开提示加密或者错误.3.需要对该数据库进行解密. 解密流程:1.反编译apk,dex ...
- Windows调试工具入门—1
NetRoc http://www.DbgTech.net 引子 Debugging Tools for Windows是微软发布的一套用于软件调试的工具包(后面如果没有指明,那么我会使用WinDbg ...
- 使用IDA静态分析解密《舰娘Collection》的lua脚本
好久没写东西了,换工作之后忙得一比.你说创业?风太大没听清啊看了看以前写的东西,觉得以前写得太严肃了,从现在开始要轻松一点,要做一名逗逼码农. 本文不会介绍破解的细节,最终完成破解所编写的代码也不会公 ...
- 内存加载DLL
1.前言 目前很多敏感和重要的DLL(Dynamic-link library) 都没有提供静态版本供编译器进行静态连接(.lib文件),即使提供了静态版本也因为兼容性问题导致无法使用,而只提供DLL ...
- java应用破解之破解 jeb mips 2.3.3
前言 jeb 的新版支持 mips的反编译 ,于是去官网申请一个试用版,试用版的限制还是比较多的,比如 使用时间验证,没法复制粘贴 等,于是想尝试看看能否破解,同时填了 java破解 这个坑. 修改版 ...
随机推荐
- Python复习笔记(十一)TCP/IP协议
1. TCP/IP协议简介 帧头: mac地址, 网卡上的序列号 2. wireshark使用 分析一个数据是否发送, 是否是网络问题 ip.dst == 192.168.0.137 and udp ...
- Teamviewer远程ssh命令行更改密码启动
Teamviewer远程ssh命令行更改密码启动 设置密码 $ sudo teamviewer passwd [NewPasswd ] 查看teamviewer信息 $ teamviewer info ...
- JGUI源码:Accordion鼠标中键滚动和手机端滑动实现(2)
本文是抽屉组件在PC端滚动鼠标中键.手机端滑动时,滚动数据列表实现方法,没有使用iscroll等第三方插件,支持火狐,谷歌,IE8+等浏览器. 演示在:www.jgui.com Github地址:ht ...
- codeblocks添加编译选项
-std=c++0x
- 集成方法 Boosting原理
1.Boosting方法思路 Boosting方法通过将一系列的基本分类器组合,生成更好的强学习器 基本分类器是通过迭代生成的,每一轮的迭代,会使误分类点的权重增大 Boosting方法常用的算法是A ...
- 基于redis的cas集群配置
1.cas ticket统一存储 做cas集群首先需要将ticket拿出来,做统一存储,以便每个节点访问到的数据一致.官方提供基于memcached的方案,由于项目需要,需要做计入redis,根据官方 ...
- Spring Cloud 2-Eureka服务发现注册(一)
Spring Cloud Eureka 1.服务端配置 pom.xml application.yml Application.java 2.客户端配置 pom.xml application.ym ...
- flask 搭建ssl接口
from flask import Flask,jsonifyapp = Flask(__name__)#app.config['SERVER_NAME'] = 'example.com' @app. ...
- 帆软报表(finereport)安装/配置
1.首先是安装帆软报表软件 下载地址:http://www.finereport.com/product/download 激活码注册格账号就有了 2.启动软件,新建连接数据库 点 ...
- 关于含RecyclerView的fragment来回切换时页面自动滑动到底部的解决方法
原因: 在fragment中来回切换时RecyclerView获得了焦点,而RecyclerView的 focusableOnTouchMode属性默认是true,所以在切换时RecyclerView ...