类似php 的composer ,go 的go vendor ,linux 的yum ,helm是k8s 应用部署的管理工具。


在mac上如何使用呢?

需要注意的是 helm2 和hlm3 相比变化非常大

helm2 和k8s之间有一层代理tiller,但是从kubernetes 1.6开始默认开启RBAC。这是Kubernetes安全性/企业可用的一个重要特性。但是在RBAC开启的情况下管理及配置Tiller变的非常复杂。为了简化helm的尝试成本我们给出了一个不需要关注安全规则的默认配置。但是,这会导致一些用户意外获得了他们并不需要的权限。并且,管理员/SRE需要学习很多额外的知识才能将Tiller部署的到关注安全的生产环境的多租户K8S集群中并使其正常工作。


在了解了社区成员通常的使用场景后,我们发现Tiller的发布管理系统不需要依靠集群内的Operator来维护状态或充当Helm发布信息的中央枢纽。相反,我们可以简单地从Kubernetes API服务器中获取信息,渲染Charts客户端,并在Kubernetes中存储安装记录。


helm2 需要安装tiller

helm3 已经移除了 init 命令


helm 管理的包,被称为chart,下面创建一个chart

看下chart里面有哪些东西呢?

Templates 目录下 YAML 文件模板(go template语法)填充的值默认都是在 values.yaml 里定义的,比如在 deployment.yaml 中定义的容器镜像:

以上变量值是在 create chart 的时候就自动生成的默认值,你可以根据实际情况进行修改。


编写应用的介绍信息

编写应用具体部署信息

编辑 mychart/values.yaml,它默认会在 Kubernetes 部署一个 Nginx。下面是 mychart 应用的 values.yaml 文件的内容


#检查依赖和模版配置是否正确

打包应用

mychart 目录会被打包为一个 mychart-0.1.0.tgz 格式的压缩包,该压缩包会被放到当前目录下。

如果你想看到更详细的输出,可以加上 --debug 参数来查看打包的输出。

离线部署

注意: ~/.kube/config不存在的情况下要用 helm --kubeconfig 指定配置文件

将应用发布到 Repository

harbor1.6+ 支持存储 helm charts,这里使用 helm 安装 harbor


这里为了简化测试操作,我关闭了数据卷的挂载并使用的是 NodePort 方式进行访问。

https://github.com/goharbor/harbor/

mac 上学习k8s系列(5)helm chart-LMLPHP

mac 上学习k8s系列(5)helm chart-LMLPHP

本文分享自微信公众号 - golang算法架构leetcode技术php(golangLeetcode)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

07-02 20:36