Helm安装部署/添加chart公共仓库/本地仓库搭建

您所在的位置:网站首页 打包到本地仓库 Helm安装部署/添加chart公共仓库/本地仓库搭建

Helm安装部署/添加chart公共仓库/本地仓库搭建

2024-07-09 19:23| 来源: 网络整理| 查看: 265

Helm 介绍

Helm 是 Kubernetes 的包管理器,用于管理charts(即预先配置的Kubernetes资源包)。Helm主要具有以下功能:

软件打包格式:将相关Kubernetes资源打包生成标准的chart软件包格式。 仓库管理:支持将chart上传到仓库进行存储、版本管理、下载等。 发布管理:管理chart的不同版本,控制chart发布更新。 部署安装:在Kubernetes集群中安装、升级和回滚软件。 模板语法:使用模板语法进行参数化安装和配置。 值管理:管理chart中参数值的区分设置。 安全签名:使用数字签名确保chart来源的安全可信。 Hooks:支持配置chart的钩子函数。 依赖管理:管理chart之间的依赖关系。

主要优点:

将K8s应用进行标准化打包。 简化应用部署和管理。 支持应用配置和版本管理。 应用间可重用的charts组件。

Helm改进了在Kubernetes上的软件管理,被广泛使用。

-[helm官网]:Helm(https://helm.sh/)

-[helm下载地址]:https://get.helm.sh/helm-v3.12.3-linux-amd64.tar.gz

这个链接是一个 Helm v3.12.3 在 Linux amd64 架构上可执行文件打包的下载地址。

https://get.helm.sh/ 这是 Helm 项目的官方下载站点 helm-v3.12.3 表示 Helm 的版本号,此处是 v3.12.3 linux-amd64 表示打包适用于 Linux 64位系统 tar.gz 表明打包格式为 gzip 压缩过的 tar 包

下载这个 tar.gz 包,可以解压使用,其中包含:

helm 二进制文件:Helm 的命令行客户端 completions 目录:命令自动补全的脚本 helm 最新版本的合法性验证程序 文档和 Licence 信息

所以这是一个 Helm v3.12.3 在 Linux 上最新正式版本的可直接下载的包文件。

下载后解压,即可使用 Helm 的 helm 命令行客户端进行 Kubernetes 包管理。

安装部署 #下载 wget https://get.helm.sh/helm-v3.12.3-linux-amd64.tar.gz #解压 tar zxf helm-v3.12.3-linux-amd64.tar.gz #移动到对应的目录下并给执行权限 mv linux-amd64/helm /usr/local/sbin/ chmod +x /usr/local/sbin/helm #配置命令自动补全功能 source > ~/.bashrc

这两条命令的作用是在 Bash shell 中配置 Helm 的自动命令补全功能。

第一条命令:

source ~/.bashrc

作用是将自动补全命令添加到 ~/.bashrc 文件中。

~/.bashrc 文件在每次打开新的 bash shell 时被读取,用来设置用户环境。

所以这行代码的作用是将 helm 自动补全添加到 bashrc 中,这样以后打开新的 shell 也可以自动加载补全功能。

总结:

第一条为当前 shell 设置补全,第二条为永久添加到 bashrc 中。 两者结合可以在当前和未来的 shell 会话中都生效 helm 命令的自动补全。

#指定对应的 Kubernetes 集群 export KUBECONFIG=/root/.kube/config echo "KUBECONFIG=/root/.kube/config" >> /etc/profile source /etc/profile #在使用 Helm 管理 Kubernetes 集群的时候,需要指定对应的 Kubernetes 集群。 #Helm 不像 kubectl 会默认从本地 kubeconfig 配置文件读取当前的 Kubernetes 集群信息。 #Helm在执行各种命令时,需要知道这些命令要操作的是哪一个Kubernetes集群。Helm没有默认的集群配置。 #没有目标集群,Helm命令将无效。 公共的 chart 仓库 #在 Helm 中可以通过添加仓库源来使用公共的 chart 仓库,常用的命令有: #添加官方稳定仓库 helm repo add stable https://charts.helm.sh/stable #这会添加 id 为 stable 的仓库源。 #添加官方测试仓库 helm repo add incubator https://charts.helm.sh/incubator #这会添加 id 为 incubator 的测试仓库。 #查看已添加的仓库列表 helm repo list #更新仓库本地缓存 helm repo update #搜索 charts helm search repo nginx #安装 charts helm install mynginx stable/nginx #以上命令可以添加常用的公共 chart 仓库,并从中安装所需的 charts。 #也可以添加自定义的 chart 仓库源。 仓库介绍

Kubernetes Helm 项目自身的官方仓库。

具体来说:

https://charts.helm.sh 是 Helm 项目的官方chart仓库地址 其中 /stable 表示稳定版本仓库 还有一个 /incubator 表示实验版本仓库

这两个仓库均由 Helm 社区维护,提供高质量的预配置应用 charts。

Helm 的一些常见公共 Chart 仓库汇总如下:

helm 官方仓库:

stable - https://charts.helm.sh/stable (稳定版本仓库) incubator - https://charts.helm.sh/incubator (实验版本仓库)

厂商维护的仓库:

Azure charts - https://github.com/Azure/helm-charts AWS charts - https://github.com/aws/eks-charts Bitnami charts - https://charts.bitnami.com/bitnami Google charts - https://github.com/google/charts

第三方维护的仓库:

Kubeapps Hub - https://hub.kubeapps.com/ K8s@Home charts - https://charts.k8sathome.com/ Codecentric charts - https://codecentric.github.io/helm-charts PingCAP charts - https://charts.pingcap.org/ GitLab charts - https://charts.gitlab.io/

国内维护的仓库:

阿里云charts - https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts 七牛云charts - https://helm.qiniu.com

这些都是流行的公共 Helm Chart 仓库,可以根据需求添加使用。

chart私有仓库创建

构建一个本地的Helm chart仓库任何的HTTP Server都可以作为chart仓库

docker run -d -p 8081:80 -v /var/www:/usr/local/apache2/htdocs httpd #这个docker命令会创建并运行一个httpd容器,参数说明如下: #- `-d`: 后台运行容器 #- `-p 8081:80`: 映射容器内80端口到宿主机8081端口 #- `-v /var/www:/usr/local/apache2/htdocs`: 把宿主机/var/www目录挂载到容器的/usr/local/apache2/htdocs,作为网页文档根目录 #- `httpd`: 使用httpd镜像启动容器 #这样就在宿主机8081端口启动了一个httpd服务器,网页文档来自宿主机的/var/www目录。 #访问方式: #在宿主机浏览器访问 http://宿主机IP:8081 #就可以访问容器中的httpd服务。 #并且我们可以通过挂载目录,来修改宿主机/var/www下的文件,即可实时更新httpd服务器中的网页文件。 #需要注意: #1. 宿主机的/var/www目录需要存在,且有一定的访问权限。 #2. 容器内部的httpd配置不要和宿主机8081端口冲突。 #3. 可以添加-v宿主机日志目录:容器日志目录来收集日志。 #4. 可以设置时区等参数对容器进行定制。 mkdir /var/www/charts #宿主机创建挂载目录 Helm chart上传到私有仓库 #Helm chart上传到私有仓库 helm package mychart/ #将mychart目录打包成tgz文件,用于发布。 mkdir myrepo #创建文件夹作为chart仓库目录。 mv mychart-0.1.0.tgz myrepo/ #将打包好的chart移动到仓库目录下。 helm repo index myrepo --url http://192.168.9.40:8081/charts #在myrepo目录生成index.yaml索引文件,用于仓库查询。 scp index.yaml mychart-0.1.0.tgz /var/www/charts #将index和chart复制到Web服务器目录下,提供下载。 helm repo add newrepo http://192.168.9.40:8081/charts #在本地Helm中添加这个chart仓库源,名为newrepo。 helm repo list #列出已知的仓库列表,确保newrepo添加成功。 helm repo update #更新本地缓存的仓库index文件。 helm search repo mychart #在newrepo仓库中搜索mychart是否可用。 至此,我们就利用Web服务器创建了一个本地的Helm chart仓库,可以通过add repo和update的方式使用了。 自行创建nginx Helm chart方法 #自行创建nginx Helm chart方法 helm create nginx-chart #使用helm create命令生成一个名为nginx-chart的chart模板。 vim nginx-chart/values.yaml #编辑values.yaml文件,用于模板中的值替换。 vim nginx-chart/templates/service.yaml #编辑模板文件service.yaml,定义Kubernetes服务。 helm lint nginx-chart/ #使用helm lint对chart进行语法检查,确保没有错误。 helm install mynginx ./nginx-chart/ #使用helm install命令,以mynginx为release名称安装nginx-chart。 kubectl get pods,svc #获取pod和服务,检查helm安装是否成功。 #这样通过自定义chart模板和values,我们就可以打包自己的应用 charts。helm lint和install命令可以确保chart语法正确并能被正常安装。 #然后就可以将chart发布到仓库,或者与CI/CD系统集成,实现Kubernetes的声明式部署。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3