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。

 helm的安装和使用

将软件包拖入master01上

将软件包拖入/opt/helm
tar -xf helm-v3.12.0-linux-amd64.tar.gz 
解压cd linux-amd64/mv helm /usr/local/bin/helmhelm version
查看版本

 

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

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

使用 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 listhelm repo update

查看chart信息

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

helm search repo bitnami | grep nginx

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

安装chart

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

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

这里面的nginx包含了deployment  service  pod 

对chart的基本管理

查看所有release

helm ls helm list

查看指定release的状态

helm status nginx

删除指定的release

helm uninstall nginx

helm自定义模板

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

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

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

 由上图可以看出:一个 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 nginxtree nginxvim /opt/helm/nginx/values.yaml-----line44-----
false----> true-----line50-----
设置域名-----line53-----
设置类型-----line64-----
资源限制

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部署版本

进行chart打包

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

如何部署自定义的charthelm 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

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

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

vim /opt/helm/nginx/values.yaml-----line40-----
type: NodePort
nodePort: 31000-----line44-----
enabled: false

helm upgrade nginx nginx进行更新kubectl get pod,svc

如何进行回滚

helm history nginx
查看回滚点helm rollback nginx 1
回到指定的回滚点

如何上传到harbor

在harbor主机进行配置更新-----line35-----
chart:absolute_url: enabled在chart中启用绝对url

在helm主机上安装好push插件 
 mkdir -p ~/.local/share/helmplugins/helm-pushtar -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.comhelm package nginx
Successfully packaged chart and saved it to: /opt/helm/nginx-0.2.0.tgzhelm 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,新建项目 

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 删除安装好的charthelm 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   //指定回滚点回滚

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/639489.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大路灯和台灯哪个对眼睛好?学生备考大灯推荐

最近家长圈里开始流行这么一句话&#xff1a;鸡娃的尽头&#xff0c;是鸡眼。曾经绘画课、科学课、乐高课、思维课一样没落下&#xff0c;讲绘本、学英语也是每天的日常&#xff0c;周一到周日孩子的行程排得满满当当。可没想到有一天带着孩子去医院体检视力的时候&#xff0c;…

python 正则表达式学习(1)

正则表达式是一个特殊的字符序列&#xff0c;它能帮助你方便的检查一个字符串是否与某种模式匹配。 1. 特殊符号 1.1 符号含义 模式描述^匹配字符串的开头$匹配字符串的末尾.匹配任意字符&#xff0c;除了换行符&#xff0c;当re.DOTALL标记被指定时&#xff0c;则可以匹配包…

LangChain实战:老喻干货店社交网络Agent一

LangChain实战&#xff1a;老喻干货店社交网络Agent一 如果您也在准备AIGC前端全栈&#xff0c;LangChain是最成熟的AI应用开发框架。欢迎点赞收藏&#xff0c;一起学习AI。 LangChain 一 hello LLM LangChain 二 模型 LangChain 三 Data Connections LangChain 四 Prompts Lan…

大模型学习与实践笔记(十一)

一、使用OpenCompass 对模型进行测评 1.环境安装&#xff1a; git clone https://github.com/open-compass/opencompass cd opencompass pip install -e . 当github超时无法访问时&#xff0c;可以在原命令基础上加上地址&#xff1a; https://mirror.ghproxy.com git clon…

司铭宇老师:房地产中介销售培训课程:如何打消购房者买房疑虑

房地产中介销售培训课程&#xff1a;如何打消购房者买房疑虑 购房是一项重大的人生决定&#xff0c;它不仅涉及到巨大的经济投入&#xff0c;还关系到购房者未来的生活品质。因此&#xff0c;购房者在做出购买决定前往往会有许多疑虑和担忧。作为房地产销售人员&#xff0c;能够…

VS2022联合Qt5开发学习9(QT5.12.3鼠标按下、释放、移动事件以及Qt上取标注点)

在研究医学图像可视化的时候&#xff0c;鼠标响应这里一直都有问题。研究了几天VTK的取点&#xff0c;还是会和Qt冲突。所以现在试试Qt的方式取点&#xff0c;看看能不能实现我的功能。 查了很多资料&#xff0c;这篇博文里的实例有部分参考了祥知道-CSDN博客这位博主的博客[Q…

超级菜鸟怎么学习数据分析?

如果你有python入门基础&#xff0c;在考虑数据分析岗&#xff0c;这篇文章将带你了解&#xff1a;数据分析人才的薪资水平&#xff0c;数据人应该掌握的技术栈。 首先来看看&#xff0c;我在搜索数据分析招聘时&#xff0c;各大厂开出的薪资&#xff1a; 那各大厂在数据领域…

DC电源模块的特点及应用案例分享

BOSHIDA DC电源模块的特点及应用案例分享 DC电源模块是一种可以将交流电转换为直流电的设备&#xff0c;具有以下特点&#xff1a; 1.高效稳定&#xff1a;DC电源模块采用高效稳定的电源转换技术&#xff0c;可以将输入的交流电转换为输出的稳定直流电&#xff0c;并且具有高…

什么是游戏盾?哪家效果好。

游戏盾是什么呢&#xff0c;很多做游戏开发的客户估计都是听说过的&#xff0c;但是也不是所有的游戏开发者会运用到。因为&#xff0c;游戏盾是针对游戏行业APP业务所推出的高度可定制的网络安全管理解决方案&#xff0c;除了能针对大型DDoS攻击(T级别)进行有效防御外&#xf…

Leetcode的AC指南 —— 栈与队列:232.用栈实现队列

摘要&#xff1a; **Leetcode的AC指南 —— 栈与队列&#xff1a;232.用栈实现队列 **。题目介绍&#xff1a;请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作&#xff08;push、pop、peek、empty&#xff09;&#xff1a; 实现 MyQueue 类&#xff1a;…

列表列添加千分位保留两位小数

// 千分位无小数部分 function setThousandsMarkNoDecimal(num) {// console.log(num????, num, typeof num)if (!num) return num;let fu false;if (num.toString().includes(-)) {fu true;num Number(num.toString().substr(1));}// num Math.trunc(num); // 保留整数…

【Spring 篇】MyBatis注解开发:编写你的数据乐章

欢迎来到MyBatis的音乐殿堂&#xff01;在这个充满节奏和韵律的舞台上&#xff0c;注解是我们编写数据乐章的得力助手。无需繁琐的XML配置&#xff0c;通过简单而强大的注解&#xff0c;你将能够轻松地与数据库交互。在这篇博客中&#xff0c;我们将深入探讨MyBatis注解开发的精…

潜水泵如何实现远程状态监测与预测性维护?

在各行各业&#xff0c;潜水泵的健康数据采集一直是一项具有挑战性的任务。然而&#xff0c;一项被称为电气特征分析&#xff08;ESA&#xff09;的技术通过在电机控制柜而非泵本身上安装传感器&#xff0c;成功解决了这一问题。 图.泵&#xff08;iStock&#xff09; 一、电气…

Ubuntu重设root的密码

重设root的密码 未重设密码之前&#xff0c;Ubuntu 中默认的 root 密码是随机的&#xff0c;即每次开机都会有一个新的root 密码&#xff0c;所以此时的 root 用户密码并不确定&#xff1b; 重设root 密码&#xff0c;使用安装时创建的用户登录后sudo su切换至root用户&#…

云服务器搭建coturn出现Not reachable?

文章目录 问题复现解决方案1. 云服务器端口开放问题2. 检查配置文件3. 浏览器 问题解决 问题复现 使用云服务器搭建coturn服务时&#xff0c;出现not reachable报错 ICE Server配置是正确的 但测试relay时却报错&#xff1a;not reachable? 并且服务器也没输出相应日志。 …

(2021|ICLR,扩散先验,VE-SDE,逼真和忠实的权衡)SDEdit:使用随机微分方程引导图像合成和编辑

SDEdit: Guided Image Synthesis and Editing with Stochastic Differential Equations 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 2. 背景&#xff1a;使用随机微分方程…

vue3-生命周期

生命周期 生命周期 vue 组件实例都有自己的一个生命周期 从创建->初始化数据->编译模版->挂载实例到 DOM->数据变更后更新 DOM ->卸载组件 生命周期简单说就是 vue 实例从创建到销毁的过程 生命周期钩子 在各个周期运行时&#xff0c;会执行钩子函数&…

文件改名大师,随机大小写字母混合,让你的文件名独一无二!

文件重命名&#xff0c;单调又乏味&#xff1f;现在&#xff0c;有了我们的文件改名大师&#xff0c;让你的文件名充满惊喜与创意&#xff01;厌倦了那些毫无新意的文件名&#xff1f;我们为你提供了一种全新的方式&#xff0c;将文件名随机改名为大小写字母混合&#xff0c;让…

C语言实战系列一:经典贪食蛇

C语言学习必须实战&#xff0c;并且学完语法后就必须立即用实战来巩固。一般需要10来个比较复杂的程序才能掌握C语言。今天就教大家第一个小程序&#xff0c;贪食蛇。 首先上代码 一、代码 #include <stdio.h> #include <stdlib.h> #include <curses.h> #…

【版面稀缺】社科类3区SCI,稳定检索78年!着急毕业可投!

关注公主号【SciencePub学术】&#xff0c;发现期刊更多精彩~ 本期&#xff0c;小编给大家推荐的是一本SAGE旗下3区综合性期刊&#xff0c;均2-3个月左右录用&#xff01; 01 期刊基本信息 【期刊简介】IF&#xff1a;2.0-2.5&#xff0c;JCR3区&#xff0c;中科院4区&#x…