之前部署一个应用的基本过程
- 编写yaml文件
- 使用deployment暴露端口
- 建立Service服务
- Ingress:负载均衡
缺点
如果是部署单一应用,或者是少数的应用服务的情况下,使用这种方法是比较合适的
当有些应用场景比如微服务,在这种情况下可能会有几十个服务,每个服务都有一套yaml文件,这样就会导致需要维护大量的yaml文件,即便是做一个版本管理在这种情况下也会特别的不方便。
helm介绍
helm是一个k8s的包管理工具,就像Linux下的包管理器,图yum/apt等,可以很方便的将之前打包好的yaml文件部署到kubernetes上。
可以解决那些问题?
(1)使用helm可以把这些yaml文件作为一个整体进行管理,不需要单个维护
(2)可以实现yaml文件的高效复用
(3)使用helm应用级别的版本管理
Helm三个重要概念
helm: 是一个命令行客户端工具
Chart:把yaml进行打包,是yaml文件的集合
Release:基于Chart部署的实体,应用级别的版本管理部分,一个chart呗Helm运行后将会生成对应的一个release;将在k8s中创建出真实运行的资源对象。
配置helm仓库
(1)添加仓库
helm repo add 仓库名称 仓库地址
(2)删除仓库
helm repo remove 仓库名称
(3)列出仓库
helm repo list
(4)更新仓库
helm repo update
使用chart部署一个应用
查找chart:界面的名字使用的是weave使用这个命令可以获得以下结果
helm search repo weave
第一步:使用命令搜索应用
helm search repo 名称 (Weave)
第二步: 根据搜索到的内容选择进行安装
helm install 安装之后名称 搜索之后应用名称
# 查看安装之后状态
helm list
helm status 安装之后名称
如何自己创建Chart
1、使用命令创建chart
helm create chart名称
- ChartYaml:当前chart属性配置信息
- templates: 编写yaml文件放到这个目录下面
- values.yaml:定义yaml文件中可以使用的的一些全局变量,template下的一些配置文件可以使用这些变量
2、在templates文件夹创建两个yaml文件
- deployment.yaml
- service.yaml
3、安装Chart
helm install web1 mychart
4、应用的更新和升级
helm upgrade chart名称 目录