Helm v3

背景

当一个项目的微服务有几十个甚至上百个,传统的yaml已不适用。需要诞生一个管理工具,helm解决了这问题。

1
2
3
1. 如何将这些yaml文件作为一个整体管理?
2. 这些yaml文件如何高效复用?
3. 不支持应用级别的版本管理?

helm

1
2
3
1. helm 一个命令行管理工具
2. chart 把yaml打包,其中包含了运行一个应用所需要的镜像、依赖和资源定义等。
3. release 在Kubernetes 集群上运行的 Chart 的一个实例,版本
  • helm v3特性
1
2
3
1. 架构改变,去掉Tiller,直接helm通过kubeconfig连接apiserver
2. release名称可以在不同命令空间重名
3. chart支持放到docker镜像仓库
  • 安装

    1
    2
    # 下载解压
    https://github.com/helm/helm/releases
  • 常用命令

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # 查看当前chart源仓库地址
    helm repo list
    # 添加chart源
    helm repo add stable http://mirror.azure.cn/kubernetes/charts
    # 搜索
    helm search repo weave
    # 安装/升级
    helm install ui-xx stable/weave-scope
    helm upgraded ui-xx stable/weave-scope
    # 查看部署的情况
    helm list
    # 创建chart,里含有基础模版
    helm create mychart
    cd mychart

helm chart包

一套yaml部署多个应用

1
2
3
4
5
1. 资源名称
2. 镜像
3. 标签
4. 副本数
5. 端口
  • 用法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1. 编辑values.yaml
replicas: 1
image: liyk/haha
tag: latest
label: liyk-nginx
port: 8080

2. deployment、svc里用变量替换。
replicas: {{ .Values.replicas }}
name: {{ .Release.Name }}-svc

# 查看chart模板渲染情况
helm install --dry-run xxx mychart

# 增加副本数/镜像 image
helm upgrade web1 --set replicas=3 mychar/

# 回滚
helm history web1
helm rollback web1 1
-------------本文结束感谢您的阅读-------------
原创技术分享,感谢您的支持。