K8S之Helm包管理工具理论+实操
文章目录为什么要使用Helm?Helm架构ChartReleaseHelm功能Helm组件Tiller ServerHelm Client总结Helm安装与基本使用V2版本与V3版本区别Helm安装为什么要使用Helm?如果我们仅仅部署一些不同的业务,例如nginx或者mysql用yaml文件创建可能就足够了,但是如果我们开发的是微服务架构,组成应用的服务可能多达十几个甚至几十个上百个,yaml文
·
文章目录
为什么要使用Helm?
- 如果我们仅仅部署一些不同的业务,例如nginx或者mysql用yaml文件创建可能就足够了,但是如果我们开发的是微服务架构,组成应用的服务可能多达十几个甚至几十个上百个,yaml文件的部署方式显然就捉襟见肘了。
- 很难管理、编辑和维护如此多的服务。
- 不容易将这些服务作为一个整体统一发布。
- 不能高效地共享和重用服务。
- 不支持应用级别的版本管理。
- 不支持对部署应用状态进行验证。
- 但是Helm就可以轻松地解决以上这几种问题,帮助K8S称为微服务架构应用理想的部署平台。
Helm架构
Chart
- chart是创建一个应用的信息结合,包括各种K8S对象配置模板、参数定义、依赖关系、文档说明等。chart是应用部署的自包含逻辑单元,可以吧chart理解成yum apt等软件安装包。
Release
- release是chart的运行实例,代表一个正在运行的应用。当chart被安装在K8S群集中时,就会生成一个release。chart可以多次安装到同一个群集,每次安装就是一个release。
Helm功能
- 从0创建新的chart
- 与存储chart的仓库交互,拉取、保存和更新chart
- 在K8S群集中安装和卸载release
- 更新、回滚和测试release
Helm组件
Tiller Server
- 功能:
- 监听来自Helm客户端的请求
- 通过chart构建release
- 在K8S中安装chart,并追踪release的状态
- 通过API升级或卸载已有的release
Helm Client
- 功能:
- 在本地开发chart
- 管理chart仓库
- 与Tiller服务器交互
- 在远程K8S群集中安装chart
- 查看release信息
- 升级或卸载已有的release
总结
- Helm Client负责管理chart,Tiller Server负责管理release。
Helm安装与基本使用
V2版本与V3版本区别
- V2
- V3
- Helm V3变化:
- 整体架构改变,除去了Tiller,Helm直接通过Kubeconfig连接Apiserver。
- release名称可以在不同命名空间内重用。
- chart支持放到Docker镜像仓库。
Helm安装
- 在GitHub上下载helm-v3.0.0-linux-amd64.tar.gz安装
tar -zxvf helm-v3.0.0-linux-amd64.tar.gz -C /opt
mv /opt/linux-amd64/helm /usr/local/bin
- 配置helm源
helm repo add stable http://mirror.azure.cn/kubernetes/charts/
helm repo list
- 查看helm软件包
helm search repo mysql
- helm安装软件包(安装weave scope)
helm install web-ui stable/weave-scope
- 查看Pod
kubectl get pods
helm list
- 修改NodePort,使其访问WebUI
kubectl get svc
kubectl edit svc web-ui-weave-scope
- 访问192.168.18.30:47763即可
Weave Scope简介
- Weave Scope是Docker和Kubernetes可视化监控工具。Scope提供了自上而下的群集基础设施和应用的完整视图,用户可以轻松对分布式的容器化应用进行实时的监控和问题诊断。
Chart创建
- 创建一个chart目录
helm create mychart
- 删除templates里面的文件,添加我们所需要部署的yaml文件,即可完成部署了。
helm install [name] mychart/
- 后面我会为大家介绍chart的详细用法,请注意关注后面的博客更新。
总结
- Helm的使用手法像极了apt和yum,用Helm管理K8S的应用真的是非常方便。
更多推荐
已为社区贡献11条内容
所有评论(0)