缺陷 如果部署单一应用,少数应用,比较合适 比如部署微服务项目,可以由几十个服务,每个服务都有一套yaml文件,需要维护大量yaml文件,版本管理特别不方便
Helm 是 Kubernetes 的包管理器。包管理器类似于我们在 Ubuntu 中使用的apt、Centos中使用的 yum 或者Python中的 pip 一样,能快速查找、下载和安装软件包。Helm 由客户端组件 helm 和服务端组件 Tiller 组成,能够将一组K8S资源打包统一管理,是查找、共享和使用为Kubernetes构建的软件的最佳方式。
Helm类似于yum安装指令,统一对安装服务进行管理,使得用户不需要关系服务之间的依赖关系。
第一步 下载helm安装文件,上传系统 第二步 解压文件复制到/usr/bin 目录下
命令 | 描述 |
---|---|
create | 创建一个chart并指定名字 |
dependency | 管理chart依赖 |
get | 下载一个release。可用子命令:all、hooks、manifest、notes、values |
history | 获取release历史 |
install | 安装一个chart |
list | 列出release |
package | 将chart目录打包到chart存档文件中 |
pull | 从远程仓库中下载chart并解压到本地#helmpullstable/mysql–untar |
repo | 添加,列出,移除,更新和索引chart仓库。可用子命令:add、index、list、remove、update |
rollback | 从之前版本回滚 |
search | 根据关键字搜索chart。可用子命令:hub、repo |
show | 查看chart详细信息。可用子命令:all、chart、readme、values |
status | 显示已命名版本的状态 |
template | 本地呈现模板 |
uninstal | 卸载一个release |
upgrade | 更新一个release |
version | 查看helm客户端版本 |
添加仓库 helm repo add 仓库名称 仓库地址 helm repo add stable http://mirror.azure.cn/kubernetes/charts helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts helm repo update
查看配置的存储库 helm repo list helm search repo stable
删除存储库 helm repo remove aliyun
helm search repo weave
helm show chart stable/mysql
helm install ui stable/weave-scope
helm list
helm status ui
helm create chart 名称 目录解释: charts:空目录,一般不会写什么 Chart.yaml:chart的基本信息,包括版本名字之类 templates:存放yaml文件 values.yaml:存放全局变量,templates下的文件可以调用
deployment.yaml service.yaml
helm install web1 mychart/
helm upgrade chart 名称 目录
yaml文件有几个地方不同
replicas: 1 image: nginx tag: 1.19 label: nginx port: 80
在templates的yaml文件使用values.yaml定义变量 通过表达式形式使用全局变量:{{ .Values.变量 }} {{ .Release.Name }}取到当前版本的名称