Helm入门+部署mysql

本文介绍了Helm作为Kubernetes应用部署工具的基本功能,包括Helm 3的主要改进,如移除Tiller以提高安全性,采用三向战略合并补丁以确保资源状态,以及默认使用Secrets作为存储驱动。此外,文章还概述了Helm 3的工作流程变化,如安装时必须提供名称,并提到了未来规划,如Helm测试功能的增强和OCI集成的改进。
摘要由CSDN通过智能技术生成

什么是 Helm
Helm 为团队提供了在 Kubernetes 内部创建、安装和管理应用程序时需要协作的工具。

有了 Helm,开发者可以:
1.查找要安装和使用的预打包软件(Chart);
2.轻松创建和托管自己的软件包;
3.将软件包安装到任何 K8s 集群中;
4.查询集群以查看已安装和正在运行的程序包;
5.更新、删除、回滚或查看已安装软件包的历史记录;

一言以蔽之,通过 Helm,你可以轻松在 Kubernetes 中运行应用程序。
Helm 3 以 Helm 2 的核心功能为基础,对 Chart repo、发行版管理、安全性和 library Charts 进行了改进。

相比 Helm 2,Helm 3 最明显的变化是 Tiller 的删除,它新增丰富功能,某些功能已被弃用或重构,与 Helm 2 不再兼容。此外,Helm 3 还引入了一些新的实验功能,包括 OCI 支持。

Helm Go SDK 已重构为通用,目标是共享和重用 Go 社区开源代码。

Helm 3 的新变化
面对新版本,相信很多开发者都有这样的疑问:

Helm 3 的工作流程与 Helm 2 相比有什么变化?
如果我还是使用Helm 2 运行这些命令,是否可以看到相同的输出?

Helm 2 描述了用于创建、安装和管理 Chart 的工作流程。Helm 3 建立在该工作流程的基础上,更改了基础架构,以满足不断发展的生态系统的需求。

1. 移除 Tiller

在 Helm 2 开发周期中,Helm 团队引入了 Tiller。它使多个不同的操作员可以与同一组发行版进行交互,对于在共享集群中工作的团队非常有用。
但 Kubernetes v1.6 默认启用基于角色的访问控制(RBAC),这之后在生产环境中用 Tiller 会变得难以管理。同时出于安全策略考虑,Helm 3 移除了 Tiller,安全模型从根本上得以简化。

2. 三方战略合并补丁
Helm 2 使用双向战略合并补丁,在升级过程中,它会比较最新 Chart 清单与建议 Chart 清单的差异,以确定需要对 Kubernetes 中的资源进行哪些更改。
在 Helm 3 中,它现在使用三向战略合并补丁。生成补丁时,Helm 会考虑旧清单、当前状态和新清单,充分保障资源能回滚到以前的状态。

3. Release Names 现在位于命名空间
随着 Tiller 的删除,在 Helm 3 中,有关特定版本的版本信息现在存储在与版本本身相同的命名空间中。

4. Secrets 作为默认存储驱动程序
Helm 2 默认情况下使用 ConfigMaps 存储发行信息。在 Helm 3 中,现在将 Secrets 用作默认存储驱动程序。

5.Go 导入路径更改
在 Helm 3 中,它将 Go 导入路径从k8s.io/helm切换为helm.sh/helm/v3。

6. 使用 JSONSchema 验证 Chart 值
Helm 现在可以将 JSON Schema 强加于 Chart 值。这样可以确保用户提供的值遵循 Chart 维护者设计的架构,当用户为 Chart 提供一组错误值时,它能提供更好的错误报告。

7. 合并
Chart 依赖关系管理系统已从requirements.yaml和requirements.lock移至Chart.yaml和Chart.lock。

8. 安装时现在需要名称
在 Helm 2 中,如果未提供名称,它会给出一个自动生成的名称。但在Helm 3 中,如果未提供名称,则会引发错误。

9. 将 Chart 推送到 OCI 注册中心
对于 Chart 的远程托管,Helm 3 希望实现 Docker Registry 那样的功能,借助 OCI Registry As Storage,根据镜像 OCI 标准规范,复用 Registry 来存储 Chart。

Helm 的下阶段规划
核心维护人员对此次发布 Helm 3.0 感到非常满意。Helm 的下一个开发阶段将围绕稳定性新功能和对现有功能的增强。

增强Helm test的功能;
对 Helm OCI 集成的改进;
Go 客户端库的增强功能。

而对于 Helm 2,开发团队将继续接受错误修复并修复出现的任何安全问题,但不会接受任何新功能。所有功能开发将移至 Helm 3。

在 Helm 3 公开发布 6 个月后,团队将停止接受除安全问题以外的 Helm 2错误修复。

charts: 包。 relieases: 实例。

//可以直接从GitHub网站上获取helm项目。

[root@master helm]# wget https://get.helm.sh/helm-v3.2.0-linux-amd64.tar.gz

//解压二进制包,移动到对应目录下,并给执行权限

[root@master helm]# tar -zxf helm-v3.2.0-linux-amd64.tar.gz 
[root@master helm]# ls
helm-v3.2.0-linux-amd64.tar.gz  linux-amd64
[root@master helm]# mv linux-amd64/helm /usr/local/sbin/
[root@master helm]# chmod +x /usr/local/sbin/helm

//helm默认没有命令自动补全功能,这里我们设置一下。

[root@master helm]# source <(helm completion bash)
[root@master helm]# echo "source <(helm completion bash)" >> ~/.bashrc

查看配置信息

[root@master helm]# helm env
HELM_BIN="helm"
HELM_DEBUG="false"
HELM_KUBEAPISERVER=""
HELM_KUBECONTEXT=""
HELM_KUBETOKEN=""
HELM_NAMESPACE="default"
HELM_PLUGINS="/root/.local/share/helm/plugins"
HELM_REGISTRY_CONFIG="/root/.config/helm/registry.json"
HELM_REPOSITORY_CACHE="/root/.cache/helm/repository"
HELM_REPOSITORY_CONFIG="/root/.config/helm/repositories.yaml"

添加公用的仓库

[root@master helm]# helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
[root@master helm]# helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "aliyun" chart repository
Update Complete. ⎈ Happy Helming![root@master helm]# helm repo list
NAME  	URL                                                   
aliyun	https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

指定对应的k8s集群
这一步非常关键,它是helm与k8s通讯的保证,这一步就是把k8s环境变量KUBECONFIG进行配置

[root@master helm]# export KUBECONFIG=/root/.kube/config

//可以写到/etc/profile里

[root@master ~]# vim /etc/profile
...(最后一行就可以)
KUBECONFIG=/root/.kube/config
[root@master ~]# source /etc/profile

查询一个charts

[root@master ~]# helm search repo mysql
NAME                         	CHART VERSION	APP VERSION	DESCRIPTION                                       
aliyun/mysql                 	0.3.5        	           	Fast, reliable, scalable, and easy to use open-...
aliyun/percona               	0.3.0        	           	free, fully compatible, enhanced, open source d...
aliyun/percona-xtradb-cluster	0.0.2        	5.7.19     	free, fully compatible, enhanced, open source d...
aliyun/gcloud-sqlproxy       	0.2.3        	           	Google Cloud SQL Proxy                            
aliyun/mariadb               	2.1.6        	10.1.31    	Fast, reliable, scalable, and easy to use open-...

helm的 hub 网址:https://hub.helm.sh/
Helm基本概念
//在安装某个Charts包之前,可以先去查找,由于国内网络环境原因,通常我们直接在上述添加的阿里云的Charts仓库内查找,比如,要下载一个MySQL服务。

[root@master ~]# helm search repo mysql
NAME                         	CHART VERSION	APP VERSION	DESCRIPTION                                       
aliyun/mysql                 	0.3.5        	           	Fast, reliable, scalable, and easy to use open-...
aliyun/percona               	0.3.0        	           	free, fully compatible, enhanced, open source d...
aliyun/percona-xtradb-cluster	0.0.2        	5.7.19     	free, fully compatible, enhanced, open source d...
aliyun/gcloud-sqlproxy       	0.2.3        	           	Google Cloud SQL Proxy                            
aliyun/mariadb               	2.1.6        	10.1.31    	Fast, reliable, scalable, and easy to use open-...

//部署helm的charts包

[root@master ~]# helm install test-mysql aliyun/mysql

PS: 注意,helm2版本,在部署的时候,如果不自定名称,会生产自定义的名称,但在helm3版本中,如果没有自定义名称会报错。
//可以去查看一下刚才安装过后的Charts包的信息,注意,一个Charts包在部署安装过后,我们称之为一个releases版本。

[root@master ~]# helm list
NAME      	NAMESPACE	REVISION	UPDATED
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值