helm 实战之开发 Chart
欢迎访问我的 GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos
本篇概览
在 Kubernetes 环境中使用 Helm 来管理应用颇为方便,今天一起来开发一个 Chart,这样的实战可加深对 Chart 的理解,今后在使用第三方的 Chart 时,不论学习还是修改都会更加得心应手;
环境信息
实战环境的版本信息如下,请确保以下软件都已运行正常:
操作系统 :CentOS Linux release 7.6.1810
Kubernetes:1.13
Helm:2.12.3
创建 Chart
执行命令 helm create tomcat ,会创建一个 tomcat 目录,里面的内容如下:
template 目录中的 deployment.yaml、service.yaml 这些文件的内容,和我们平时创建 pod 和 service 时编写的 yaml 文件类似,不同之处在于很多配置的值并非固定,而是用变量代替了,以 deployment.yaml 中的镜像名称为例,如下图绿框所示:
上图绿框中的变量是在 tomcat/values.yaml 中定义的,如下图红框所示,只要我们修改了其中的内容,也就完成了 depoloyment.yaml 中镜像的设置:
目前创建 Chart 已经成功,接下来就是修改 deployment.yaml 和 vlues.yaml,改成 tomcat 所需的内容;
修改配置
修改 tomcat/values.yaml 的内容,包括 Pod 镜像和版本、Service 的类型,如下图的两个红框中的内容:
此次实战并没有准备好存活探针和就绪探针,所以这两个配置也要去掉,否则会导致创建 Kubernetes 判定创建 Pod 失败,修改方法是将 deployment.yaml 中如下图红框中的内容全部删除:
修改 template/deployment.yaml 中的内容,将端口从 80 改为 8080,如下图红框所示:
至此,修改完毕,接下来尝试部署到 Kubernetes 环境;
检查和部署
在 tomcat 文件夹所在目录,输入以下命令,可以看到将 values.yaml 的值填写到 deployment.yaml、service.yaml 后的最终效果:
得到输出如下:
篇幅所限只展示了一部分输出,可见设置的值已经生效;
执行命令 helm install tomcat ,即可部署当前的 Chart 到 Kubernetes 环境,控制台输出如下:
根据控制台的提示,我们输入以下命令,即可获取到外部访问此服务的地址:
我这里得到的地址是:http://192.168.182.130:31768/
在浏览器输入上述地址,可见访问 tomcat 服务成功,如下图:
自定义 Chart 开发和验证都完成了,执行命令 helm package tomcat 即可将整个 Chart 的配置文件打包,方便在其他环境安装部署;
至此 helm 开发 Chart 实战就全部完成了,经历了此番实战,今后学习中如遇到公共仓库有不错的 Chart,可用 helm fetch xxx
将 Chart 包下载到本地来研究学习源码和配置,也可自己修改后再在本地 install;
欢迎关注 InfoQ:程序员欣宸
版权声明: 本文为 InfoQ 作者【程序员欣宸】的原创文章。
原文链接:【http://xie.infoq.cn/article/ad5a0f5118d2b9abc954543e1】。文章转载请联系作者。
评论