k8s学习十-helm

1 helm概述

之前部署应用需要编写yaml文件,然后执行文件。这种方式部署少量的服务可以,但是如果部署几十个,上百个微服务需要维护大量yaml文件,特别不方便。通过helm可以解决如下问题

  • 把多个yaml作为一个整体管理
  • 实现yaml高效复用
  • 使用helm应用级别的版本管理

helm是一个k8s的包管理工具,就像linux下的包管理器,如yum/apt等,可以很方便的将之前打包好的yaml文件部署到k8s上

2 相关概念

  • helm:一个命令行客户端工具,主要用于 Kubernetes 应用 chart 的创建、打包、发布和管理。
  • Chart:应用描述,一系列用于描述 k8s 资源相关文件的集合。
  • Release:基于 Chart 的部署实体,一个 chart 被 Helm 运行后将会生成对应的一个release;将在 k8s 中创建出真实运行的资源对象。

3 架构介绍

在这里插入图片描述
2019 年 11 月 13 日, Helm 团队发布 Helm v3 的第一个稳定版本。
该版本主要变化如下:
架构变化:
1、最明显的变化是 Tiller 的删除
2、Release 名称可以在不同命名空间重用
3、支持将 Chart 推送至 Docker 镜像仓库中4、使用 JSONSchema 验证 chart values
4、使用 JSONSchema 验证 chart values
5、其他

4 helm使用

4.1 安装配置

1 安装helm
Helm 客户端下载地址:https://github.com/helm/helm/releases 解压移动到/usr/bin/目录即可。

wget https://get.helm.sh/helm-vv3.2.1-linux-amd64.tar.gz tar zxvf helm-v3.2.1-linux-amd64.tar.gz
mv linux-amd64/helm /usr/bin/

2 配置 chart 仓库

  • 微软仓库(http://mirror.azure.cn/kubernetes/charts/)这个仓库推荐,基本 上官网有的 chart 这里都有。
  • 阿里云仓库(https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts )
  • 官方仓库(https://hub.kubeapps.com/charts/incubator)官方 chart 仓库,国内有点不好使

添加仓库

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 remove aliyun
在这里插入图片描述

更新仓库

helm repo update

4.2 部署应用

1 搜索应用

helm search repo weave
在这里插入图片描述

2 安装应用

helm install ui stable/weave-scope
在这里插入图片描述

3 查看应用

  • helm list
    在这里插入图片描述
  • helm status ui
    在这里插入图片描述

4 暴露端口

kubectl edit svc ui-weave-scope
在这里插入图片描述
在这里插入图片描述
再次查看
在这里插入图片描述

4.3 自定义chart部署

1 创建chart
在这里插入图片描述

  • Chart.yaml:用于描述这个 Chart 的基本信息,包括名字、描述信息以及版本等。
  • values.yaml :用于存储 templates 目录中模板文件中用到变量的值。
  • Templates: 目录里面存放所有 yaml 模板文件。
  • charts:目录里存放这个 chart 依赖的所有子 chart。
  • NOTES.txt :用于介绍 Chart 帮助信息, helm install 部署后展示给用户。例如: 如何使用这个 Chart、列出缺省的设置等。
  • helpers.tpl:放置模板助手的地方,可以在整个 chart 中重复使用

2 在templates文件夹下创建两个yaml文件

  • deployment.yaml
    在这里插入图片描述
  • service.yaml

首先创建应用:kubectl create deployment web1 --image=nginx
在这里插入图片描述
3 安装mychart
在这里插入图片描述
4 应用升级
helm upgrade [chart名称] 目录
在这里插入图片描述

5 chart模板使用

通过传递参数,动态渲染模板,yaml内容动态传入参数生成,实现yaml高效复用。chart中有values.vaml文件,定义yaml全局变量
yaml文件大体有如下几个地方不同

  • image
  • tag
  • label
  • port
  • replicas

1 在values.yaml文件定义变量
在这里插入图片描述
2 在templates的yaml文件引用变量
在这里插入图片描述
通过Values前缀引用值,通过Release动态生成名字

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值