k8s---包管理器helm

这篇具有很好参考价值的文章主要介绍了k8s---包管理器helm。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

内容预知

目录

内容预知

helm相关知识

Helm的简介与了解 

helm的三个重要概念

 helm的安装和使用

将软件包拖入master01上

使用 helm 安装 Chart 

对chart的基本使用

查看chart信息

安装chart

对chart的基本管理

helm自定义模板

在镜像仓库中拉取chart,查看chart的包结构

进行模板文件的修改,生成自定义chart

进行chart打包

利用自定义chart包进行k8s资源部署

如何对chart文件进行修改重新部署,回滚,上传harbor

如何对chart文件进行修改并且重新发布

如何进行回滚

如何上传到harbor

在helm主机上安装好push插件 

在habor主机创建项目,在helm主机添加chart仓库 

helm命令总结

helm常用命令



helm相关知识

Helm的简介与了解 


 Helm本质就是让K8s的应用管理(Deployment、Service等)可配置,可以通过类似于传递环境变量的方式能动态生成。通过动态生成K8s资源清单文件(deployment.yaml、service.yaml)。 然后调用 Kubectl 自动执行 K8s 资源部署。

在没使用 helm 之前,向 kubernetes 部署应用,我们要依次部署 deployment、svc 等,步骤较繁琐。 况且随着很多项目微服务化,复杂的应用在容器中部署以及管理显得较为复杂,helm 通过打包的方式,支持发布的版本管理和控制, 很大程度上简化了 Kubernetes 应用的部署和管理。

 Helm 是官方提供的类似于 YUM 的包管理器,是部署环境的流程封装。

Helm的官网地址:ht/tp:// https://helm.sh

helm的三个重要概念

在Helm中 有三个重要的概念,分别为:Chart 、Repository 和 Release 

  • chart:helm的软件包,部署包,service ingress,定义好的yaml资源。类似于yum的rpm包。
  • release:版本,也可以理解为在安装过程中,给这个部署的应用起一个名字。
  • repository:仓库,提供一个服务器,服务器中包含chart的资源。提供yaml资源的保存地址。

Helm在k8s集群运用中,总的来讲其作用过程:Helm 安装 charts 到 Kubernetes 集群中,每次安装都会创建一个新的 release。你可以在 Helm 的 chart repositories 中寻找新的 chart。

k8s---包管理器helm,K8s,kubernetes,容器,云原生

 helm的安装和使用

将软件包拖入master01上

将软件包拖入/opt/helm
tar -xf helm-v3.12.0-linux-amd64.tar.gz 
解压

cd linux-amd64/

mv helm /usr/local/bin/helm

helm version
查看版本

k8s---包管理器helm,K8s,kubernetes,容器,云原生

 

添加helm的自动补全功能,方便后续使用:

vim /etc/bashrc
source <(helm completion bash)

k8s---包管理器helm,K8s,kubernetes,容器,云原生

使用 helm 安装 Chart 

###helm添加chat的语法格式:
helm repo add  chart仓库名   chart仓库地址
 
###添加常用的chart仓库############
#一个开源项目的仓库
helm repo add bitnami https://charts.bitnami.com/bitnami
#微软chart仓库,推荐使用,内容基本与官方仓库保持一致
helm repo add stable http://mirror.azure.cn/kubernetes/charts
#阿里chart仓库,应有尽有
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
#官方仓库,国内网络问题,不太推荐应用
helm repo add incubator https://charts.helm.sh/incubator

对chart的基本使用

更新和查看仓库列表

helm repo list

helm repo update

k8s---包管理器helm,K8s,kubernetes,容器,云原生

查看chart信息

查找指定仓库里面是否包含nginx的内容。

helm search repo bitnami | grep nginx

k8s---包管理器helm,K8s,kubernetes,容器,云原生

helm show all bitnaml/nginx
查看所有信息

k8s---包管理器helm,K8s,kubernetes,容器,云原生

安装chart

helm install my-nginx bitnami/nginx [-n default]   #指定 release 的名字为 my-nginx,-n 指定部署到 k8s 的 namespace
 
helm install bitnami/nginx --generate-name    #不指定 release 的名字时,需使用 –generate-name 随机生成一个名字

k8s---包管理器helm,K8s,kubernetes,容器,云原生

安装完之后会发现,service和pod都安装好了

k8s---包管理器helm,K8s,kubernetes,容器,云原生

k8s---包管理器helm,K8s,kubernetes,容器,云原生

这里面的nginx包含了deployment  service  pod 

对chart的基本管理

查看所有release

helm ls 

helm list

k8s---包管理器helm,K8s,kubernetes,容器,云原生

查看指定release的状态

helm status nginx

k8s---包管理器helm,K8s,kubernetes,容器,云原生

删除指定的release

helm uninstall nginx

k8s---包管理器helm,K8s,kubernetes,容器,云原生

helm自定义模板

根据自己的需求,定义chart。然后部署到集群中。

在镜像仓库中拉取chart,查看chart的包结构

#拉取chart 到本地目录(现在所在的目录中)
helm pull stable/mysql
 
#对该拉取的chart压缩包进行解压
tar xf mysql-1.6.9.tgz

k8s---包管理器helm,K8s,kubernetes,容器,云原生

 由上图可以看出:一个 chart 包就是一个文件夹的集合,文件夹名称就是 chart 包的名称。

 chart 是包含至少两项内容的helm软件包:

(1)软件包自描述文件 Chart.yaml,这个文件必须有 name 和 version(chart版本) 的定义
(2)一个或多个模板,其中包含 Kubernetes 清单文件:

  • NOTES.txt:注意事项
  • deployment.yaml:部署应用的模板文件
  • service.yaml:为 deployment 创建 service 的资源清单文件
  • ingress.yaml: 定义了外部流量如何转发到应用程序
  • _helpers.tpl:帮助文档,告诉用户如何来定义模板的值。
  • hpa.yaml:定义了应用程序副本数的扩缩容行为
  • chart:用于存储依赖,如果这个chart依赖于其他的chart,依赖文件保存在这个目录。
  • Chart.yaml:helm chart的元数据文件,包含了这个chart的名称,版本,维护者信息等等。
  • templates:包含清单模板的目录。
  • serviceaccount.yaml:应用程序的服务账号
  • values.yaml:核心文件,自定义的值,都是通过
  • values.yaml把我们的数据覆盖到安装的chart

进行模板文件的修改,生成自定义chart

helm create nginx
 
tree nginx

vim /opt/helm/nginx/values.yaml

-----line44-----
false----> true


-----line50-----
设置域名


-----line53-----
设置类型


-----line64-----
资源限制

k8s---包管理器helm,K8s,kubernetes,容器,云原生

vim nginx/Chart.yaml
apiVersion: v2
name: nginx                     #chart名字
description: A Helm chart for Kubernetes
type: application               #chart类型,application或library
version: 0.1.0                  #chart版本
appVersion: 1.16.0              #application部署版本

k8s---包管理器helm,K8s,kubernetes,容器,云原生

进行chart打包

//打包 chart
helm lint nginx        #检查依赖和模版配置是否正确
 
helm package nginx     #打包 chart,会在当前目录下生成压缩包 nginx-0.1.0.tgz
如何部署自定义的chart

helm install nginx-11 ./nginx --dry-run --debug
nginx-11:release版本号
./nginx:当前目录下nginx的chart
--dry-run --debug:这个chart不会被部署到集群当中,参数验证,测试chart的配置是否正确。

利用自定义chart包进行k8s资源部署

helm install nginx ./nginx --dry-run --debug    #使用 --dry-run 参数验证 Chart 的配置,并不执行安装
 
helm install nginx ./nginx -n default           #部署 chart,release 版本默认为 1
或者
helm install nginx ./nginx-0.1.0.tgz
 
#可根据不同的配置来 install,默认是 values.yaml
helm install nginx ./nginx -f ./nginx/values-prod.yaml

k8s---包管理器helm,K8s,kubernetes,容器,云原生

如何对chart文件进行修改重新部署,回滚,上传harbor

如何对chart文件进行修改并且重新发布

vim /opt/helm/nginx/values.yaml

-----line40-----
type: NodePort
nodePort: 31000

-----line44-----
enabled: false

k8s---包管理器helm,K8s,kubernetes,容器,云原生

k8s---包管理器helm,K8s,kubernetes,容器,云原生

helm upgrade nginx nginx

进行更新

kubectl get pod,svc

k8s---包管理器helm,K8s,kubernetes,容器,云原生

如何进行回滚

helm history nginx
查看回滚点

helm rollback nginx 1
回到指定的回滚点

k8s---包管理器helm,K8s,kubernetes,容器,云原生

k8s---包管理器helm,K8s,kubernetes,容器,云原生

如何上传到harbor

在harbor主机进行配置更新

-----line35-----
chart:
  absolute_url: enabled

 在chart中启用绝对url

k8s---包管理器helm,K8s,kubernetes,容器,云原生

在helm主机上安装好push插件 
 mkdir -p ~/.local/share/helmplugins/helm-push
 
 tar -xf helm-push_0.8.1_linux_amd64.tar.gz -C ~/.local/share/helmplugins/helm-push
 
 # docker login -u admin -p 123456 https://hub.zzr.com
 
  helm package nginx
Successfully packaged chart and saved it to: /opt/helm/nginx-0.2.0.tgz


helm push nginx-0.2.0.tgz oci://hub.zzr.com/charts --insecure-skip-tls-verify
Pushed: hub.zzr.com/charts/nginx:0.2.0
Digest: sha256:e6f4c07783fbcf201e33b4ed70e221391191fcefb4de2d637743bc10971da2b4
在habor主机创建项目,在helm主机添加chart仓库 

打开浏览器:访问http://20.0.0.64,新建项目 

k8s---包管理器helm,K8s,kubernetes,容器,云原生

k8s---包管理器helm,K8s,kubernetes,容器,云原生文章来源地址https://www.toymoban.com/news/detail-817279.html

helm命令总结

helm常用命令

helm repo add 仓库名 url地址 添加仓库

helm repo update 不加仓库名,就是更新所有仓库

helm repo list 仓库列表

helm repo remove 仓库名称

helm show chart stabke/nginx 查看chart信息

helm show stable/nginx 查看详细信息

helm install nginx-11 stable/nginx -n lucky-zzr
安装官网的默认版本

helm uninstall nginx-11 删除安装好的chart

helm list 查看已经安装的chart

自定义模板
helm create nginx  创建一个自定义的chart模板

values.yaml:这里会传给templates里面的yaml文件


用helm拉取nginx的两种方式

helm install nginx-11 ./nginx
helm install nginx-11 ./nginx-0.1.0.tgz



如何打包创建好的chart:
helm package nginx



回滚:
helm history nginx-11   //查看回滚点

helm rollback nginx-11 1   //指定回滚点回滚

到了这里,关于k8s---包管理器helm的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • K8s包管理工具helm

    Helm官网 Helm 是 Kubernetes 的包管理器 ,使用chart来帮助您管理Kubernetes的应用,即使是最复杂的应用程序,helm都可以定义,安装和升级。 Chart 代表着 Helm 包。它包含在 Kubernetes 集群内部运行应用程序,工具或服务所需的所有资源定义。你可以把它看作是 Homebrew formula,Apt dpkg,

    2024年02月19日
    浏览(52)
  • k8s之包管理器Helm

    helm的作用就是通过打包的方式,把deployment service ingress这些打包在一块,一键式的部署服务。类似yum官方提供的一个类似与安装仓库的功能,可以实现一键化部署应用。 ●Chart:Helm 的软件包,采用 TAR 格式。是创建一个应用的信息集合,包括各种 Kubernetes 对象的配置模板、参

    2024年01月23日
    浏览(50)
  • k8s的包管理工具helm

     之前的这篇文章介绍了一开始接触k8s的时候接触到的几个命令工具 kubectlkubeletrancherhelmkubeadm这几个命令行工具是什么关系?-CSDN博客 Helm 是一个用于管理和部署 Kubernetes 应用程序的包管理工具。它允许用户定义、安装和管理 Kubernetes 应用程序的模板,这些模板被称为 Charts。

    2024年01月22日
    浏览(58)
  • [Kubernetes]8. K8s使用Helm部署mysql集群(主从数据库集群)

    上一节讲解了K8s包管理工具Helm、使用Helm部署mongodb集群(主从数据库集群),这里来看看 K8s使用Helm部署mysql集群(主从数据库集群) 无本地存储: 当重启的时候,数据库消失 (1).打开官网的应用中心 打开应用中心,搜索mysql (2).安装  1).添加repo仓库 2).安装 具体命令如下:  3).自动生成

    2024年01月21日
    浏览(81)
  • 【云原生,k8s】Helm应用包管理器介绍

    目录 一、为什么需要Helm? (一)Helm介绍 (二)Helm有3个重要概念: (三)Helm特点 二、Helm V3变化 (一)架构变化 (二)自动创建名称空间 三、Helm应用包管理器部署 1、部署Helm客户端工具 2、Helm常用命令 3、配置国内的Chart仓库 4、使用chart部署一个Nginx应用 5、使用chart部

    2024年02月12日
    浏览(36)
  • k8s包管理工具helm简介及基本使用

     helm是k8s的包管理工具,类似于centos 的yum;  当前版本有helm2、helm3 相对来说helm3功能更加完善,使用更加方便 主要作用是相较于传统的k8s部署应用需要手工编排yaml文件(比如Deployment.yml、service.yml、ingress.yml等),使用helm可以快速部署应用。 helm3与helm2 的区别在于helm3删除了

    2024年02月14日
    浏览(36)
  • 一小时完成Rancher高可用搭建丨基于kubernetes(K8s)完成丨Docker helm

    一句话介绍:Rancher可用于对K8S集群进行部署及实现对业务部署进行管理等。 对于规模化较小的管理团队或初始使用Rancher管理K8S集群部署,建议使用此种方式。 对于具体一定规模且有一定K8S管理经验的团队,我们建议可以通过在Kubernetes部署Rancher,以达到Rancher高可用目的。

    2024年02月04日
    浏览(57)
  • yum部署kubernetes(k8s)集群、k8s常用资源管理

    目录 一、环境搭建 1、准备环境 1)计算机说明,建议系统版本7.4或者7.6 2)修改所有主机的计算机名设置host文件  2、安装master节点 1)安装etcd配置etcd 2)安装k8s-master节点 3)配置apiserver 4)配置controller和scheduler 5)启动k8s服务 3、安装k8s-master上的node 1)安装node 2)配置kube

    2024年02月13日
    浏览(64)
  • kubernetes/k8s配置资源管理

    配置资源管理 Secret Configmap*.1.2加入新特征 1.18 Secret:保存密码,token,敏感的k8s资源 这类数据可以存放在镜像当中,但是防止secret可以更方便的控制,减少暴漏风险。 保存加密的信息 Secret的类型: docker-registry:存储docker仓库认证信息,以及docker组件的认证信息(私有的) generic:是

    2024年01月17日
    浏览(53)
  • (kubernetes)k8s常用资源管理

    目录 k8s常用资源管理 1、创建一个pod 1)创建yuml文件 2)创建容器 3)查看所有pod创建运行状态 4)查看指定pod资源 5)查看pod运行的详细信息 6)验证运行的pod 2、pod管理 1)删除pod 2)查看删除pod无法找到 3)创建pod 4)发现最先创建的pod运行在k8s-master节点上,下载镜像速度太

    2024年02月13日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包