| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Helm基本知识(上) -> 正文阅读 |
|
[系统运维]Helm基本知识(上) |
目录 helm基本介绍前言:在我们yum管理工具,主要解决的是包之间的依赖问题,而我们的helm工具是安装服务的问题,在我们的k8s中的包管理工具helm,它可以通过一些仓库去下载一些我们想要yalm文件,我们去修改这些yalm文件对应的属性就可以安装对应我们想要的系统信息。 那么什么是helm呢? 官方的解释是在没使用helm之前,向 kubernetes 部署应用,我们要依次部署 deployment、svc 等,步骤较繁琐。况且随 着很多项目微服务化,复杂的应用在容器中部署以及管理显得较为复杂,helm 通过打包的方式,支持发布的版本 管理和控制,很大程度上简化了 Kubernetes 应用的部署和管理。 Helm 本质就是让 K8s 的应用管理(Deployment,Service 等 ) 可配置,能动态生成。通过动态生成 K8s 资源清 单文件(deployment.yaml,service.yaml)。然后调用 Kubectl 自动执行 K8s 资源部署。 也就是说通过helm生成的yaml文件并不是一成不变的,它不想之前的手动创建的yaml文件,从我们创建到运行,只要我们编辑完yaml文件,这个数据就不会更改。但是通过我们helm传递类似环境变量的东西去修改我们的pod的信息,达到一个动态的效果。 Helm 是官方提供的类似于 YUM 的包管理器,是部署环境的流程封装。Helm 有两个重要的概念:chart 和 release
在k8s中,应用的信息其实有很多,比如说我们的deployment或者svc是怎么创建的,包括一些存储呀都需要声明出来,chart就是这些信息的集合。
其实上面的两个跟我们docker中的镜像与容器的关系,chart相当于一个镜像,没运行之前就是一些环境的封装,当启动chart就会生成一个容器,并且一个镜像可以启动多个容器,这里就是realease。 Helm2 包含两个组件:Helm 客户端和 Tiller 服务器,如下图所示 ?Helm2 客户端负责 chart 和 release 的创建和管理以及和 Tiller 的交互。Tiller 服务器运行在 Kubernetes 集群 中,它会处理 Helm2 客户端的请求,与 Kubernetes API Server 交互。 在最新版本中,我们已经把helm升级到V3版本了,V3版本移除了tiller服务器的概念,关于v3和v2版本的区别如下: 1、一个最明显的变化是tiller的删除 2、Release 名称可以在不同命名空间重用 3、支持将 Chart 推送至 Docker 镜像仓库中 4、使用 JSONSchema 验证 chart values 5、其他 ?helm部署使用1. helm的安装由于v2版本现在基本已经废弃使用,下面我们只使用v3版本试验,关于helm的安装,很简单,去官方网站拿到对应的二进制文件,然后放到PATH路径下即可。
2. 配置helm仓库(1)添加仓库helm repo add 仓库名称 仓库地址
(2)helm仓库的基本操作如何查看配置的存储库 helm repo list helm search repo aliyun 删除存储库 helm repo remove aliyun ?3. 使用helm快速部署一个应用第一步: 使用搜索命令搜索应用 helm search repo 应用名称
第二步:根据搜索内容选择安装 helm install 安装后应用的名称 搜索之后应用的名称 ?第三步:查看安装之后的状态 helm list helm status 安装之后应用的名称
当然我们也可以通过kubectl命令查看相关的pod是否创建成功 4. 自定义chart自定义选项是因为并不是所有的 chart 都能按照默认配置运行成功,可能会需要一些环境 依赖,例如 PV。 所以我们需要自定义 chart 配置选项,安装过程中有两种方法可以传递配置数据:
第一步:使用命令创建chart helm create chart名称
分析一下相关目录的含义吧 charts:普通文件夹,刚开始创建为空 Chart.yaml:用于配置当前chart的属性信息 templates:目标信息文件,里面有很多的yaml模板文件,我们使用helm创建应用相当于helm帮我去执行这些yaml文件了。
因为我们需要自己自定义chart,因此我们可以修改这些yaml文件,也可以删除这些默认生成的yaml文件,然后自己重新写。
values.yaml:全局变量文件,提供给templates里面的yaml文件用 第二步:在templates文件夹中创建两个yaml文件 ?为了方便得到service.yaml,我们事先创建了一个web1的服务,得到service.yaml文件之后,再删除这个服务。 第三步:开始安装mychart
第四步:更新应用 helm upgrade chart名称
5. chart模板的使用helm可以把我们的yaml文件统一做整体管理,另外可以让我们的yaml文件实现高效的复用。下面就试验如何实现yaml文件的高效的复用,即如何模板,我们动态的渲染模板,动态的传入参数。就是values.yaml使用。 yaml文件中大体中image,tag,label,port,replicas不同,即我们把它们当做宏定义。 第一步:在values.yaml定义变量和值
第二步:在具体的yaml中获取定义的变量值 通过一种表达式的形式使用全局变量, {{ . Values.变量名称}} {{ . Release.Name}} 表示取到当前版本的名称,保证每次部署的名字不一样 首先是values.yaml
然后就是templates里面的内容了 相关文件编辑完成之后,我们验证一下,没有报错表示成功 真正部署一下 ?至此为止,helm的大部分操作以及应用已经完成了,后面还会学习到关于helm的高级用法。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 20:47:32- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |