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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 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下载地址]: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 官方仓库:

厂商维护的仓库:

第三方维护的仓库:

国内维护的仓库:

  • 阿里云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的声明式部署。
相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
1月前
|
Kubernetes 应用服务中间件 Linux
k8s--如何将chart包托管至harbor
k8s--如何将chart包托管至harbor
|
2月前
|
Docker 容器
Docker Hub镜像公共仓库使用
这篇文章介绍了如何使用Docker Hub公共仓库进行镜像的创建、上传、下载和管理。
1004 8
|
6月前
阿里云配置dcoker镜像仓库
阿里云配置dcoker镜像仓库
284 0
|
4月前
|
数据可视化 Linux 数据安全/隐私保护
Harbor私有镜像仓库搭建
Harbor私有镜像仓库搭建
64 3
|
3月前
|
存储 Kubernetes 数据安全/隐私保护
在K8S中,如何下载harbor的私有项目镜像?
在K8S中,如何下载harbor的私有项目镜像?
|
Shell Docker 容器
docker--从仓库下载镜像到推送自己的项目到仓库步骤详解
怎样从仓库下载的镜像,变成容器,并在容器中制作项目,再将容器变成镜像,然后将镜像推送到仓库?        一:从官网下载镜像        官方的https://hub.docker.
3836 0
|
5月前
|
运维 Serverless 开发工具
函数计算产品使用问题之通过GitLab仓库来部署代码,该如何配置GitLab仓库
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
6月前
|
存储 Kubernetes 安全
第四章 Helm仓库介绍配置国内仓库地址
第四章 Helm仓库介绍配置国内仓库地址
1362 2
|
6月前
|
存储 安全 数据库
搭建Harbor镜像仓库
搭建Harbor镜像仓库
312 2
|
6月前
|
NoSQL 应用服务中间件 数据安全/隐私保护
Docker镜像创建及管理(Hub官方仓库使用及私有注册中心搭建)
Docker镜像创建及管理(Hub官方仓库使用及私有注册中心搭建)