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

简介: Helm 是 Kubernetes 的包管理器,用于管理charts(即预先配置的Kubernetes资源包)。Helm主要具有以下功能:1. 软件打包格式:将相关Kubernetes资源打包生成标准的chart软件包格式。2. 仓库管理:支持将chart上传到仓库进行存储、版本管理、下载等。3. 发布管理:管理chart的不同版本,控制chart发布更新。4. 部署安装:在Kubernetes集群中安装、升级和回滚软件。5. 模板语法:使用模板语法进行参数化安装和配置。6. 值管理:管理chart中参数值的区分设置。7. 安全签名:使用数字签名确保chart来源的安全可信。

Helm

介绍

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

  1. 软件打包格式:将相关Kubernetes资源打包生成标准的chart软件包格式。
  2. 仓库管理:支持将chart上传到仓库进行存储、版本管理、下载等。
  3. 发布管理:管理chart的不同版本,控制chart发布更新。
  4. 部署安装:在Kubernetes集群中安装、升级和回滚软件。
  5. 模板语法:使用模板语法进行参数化安装和配置。
  6. 值管理:管理chart中参数值的区分设置。
  7. 安全签名:使用数字签名确保chart来源的安全可信。
  8. Hooks:支持配置chart的钩子函数。
  9. 依赖管理:管理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 <(helm completion bash)
echo "source <(helm completion bash)" >> ~/.bashrc

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

第一条命令:

source <(helm completion bash)

这条命令的作用是:

source:在当前 Bash shell 中加载并执行后续命令的输出

<():表示命令替换,运行里面的命令并将输出传递给 source

helm completion bash:生成 helm 的 bash 自动补全脚本

所以它会在当前的 bash shell 会话中生效。

第二条命令:

echo "source <(helm completion bash)" >> ~/.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 官方仓库:

厂商维护的仓库:

第三方维护的仓库:

国内维护的仓库:

这些都是流行的公共 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的声明式部署。
相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务&nbsp;ACK 容器服务&nbsp;Kubernetes&nbsp;版(简称&nbsp;ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
目录
相关文章
|
6月前
|
开发工具 git
Gitlab配置mirrorRepository 镜像仓库
Gitlab配置mirrorRepository 镜像仓库 🔊业务场景📆1.在a项目中点击settings-》repository-》mirroring repositories📌tips🧣最后的话
173 0
|
2月前
阿里云配置dcoker镜像仓库
阿里云配置dcoker镜像仓库
101 0
|
29天前
|
存储 Kubernetes 安全
第四章 Helm仓库介绍配置国内仓库地址
第四章 Helm仓库介绍配置国内仓库地址
29 2
|
29天前
|
存储 安全 数据库
搭建Harbor镜像仓库
搭建Harbor镜像仓库
57 2
|
2月前
|
JavaScript Devops Java
DevOps搭建(一)-安装Harbor镜像仓库详细步骤
DevOps搭建(一)-安装Harbor镜像仓库详细步骤
29 0
|
4月前
|
NoSQL 应用服务中间件 数据安全/隐私保护
Docker镜像创建及管理(Hub官方仓库使用及私有注册中心搭建)
Docker镜像创建及管理(Hub官方仓库使用及私有注册中心搭建)
|
Shell Docker 容器
docker--从仓库下载镜像到推送自己的项目到仓库步骤详解
怎样从仓库下载的镜像,变成容器,并在容器中制作项目,再将容器变成镜像,然后将镜像推送到仓库?        一:从官网下载镜像        官方的https://hub.docker.
3728 0
|
5月前
|
Kubernetes Cloud Native Docker
如何将自己的镜像使用 helm 部署
如何将自己的镜像使用 helm 部署
120 0
如何将自己的镜像使用 helm 部署
|
8月前
|
存储 安全 数据安全/隐私保护
企业级镜像仓库Harbor的安装与配置
Harbor是一个开源的容器镜像仓库管理系统,具有丰富的安全和管理功能。它可以在企业环境中搭建私有仓库,并提供可信度、多租户支持、定制性等特点。
529 1
|
9月前
|
存储 安全 数据安全/隐私保护
Harbor私有镜像仓库搭建
Harbor是由VMware开发的开源镜像仓库管理系统,具有以下一些主要特点和功能: 1.镜像管理 Harbor可以存储、管理镜像,支持访问控制、镜像复制、镜像删除等功能。 2.角色访问控制 可以创建用户和设置角色控制镜像的访问权限,例如只读或读写权限。 3.镜像复制 支持在多个Harbor实例之间复制镜像,保证分布式部署可以访问相同镜像。 4.镜像安全扫描 可以配置镜像安全扫描,检测镜像中的漏洞或风险。 5.镜像签名与信任 支持内容信任机制,确保镜像来源可信的同时保护镜像内容不被篡改。 6.策略管理 可以对用户访问、镜像复制和其他操作设置灵活的策略。
126 1