当前位置: 首页 > news >正文

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   //指定回滚点回滚

相关文章:

k8s---包管理器helm

内容预知 目录 内容预知 helm相关知识 Helm的简介与了解 helm的三个重要概念 helm的安装和使用 将软件包拖入master01上 使用 helm 安装 Chart 对chart的基本使用 查看chart信息 安装chart 对chart的基本管理 helm自定义模板 在镜像仓库中拉取chart&#xff0c;查…...

对于超低延迟SSD,IO调度器已经过时了吗?-part2

为了进行这项研究&#xff0c;他们设计了一套严谨的实验方法论&#xff0c;包括在配备了高速Intel Optane P4801X Series NVMe SSD的服务器上执行一系列微观和宏观基准测试&#xff0c;同时监测系统能耗情况。这些测试涵盖了多种工作负载场景&#xff0c;从单一进程提交大量请求…...

【C++】list的使用

目录 1 构造1.1 无参构造1.2 构造的list中包含n个值为val的元素1.3 用[first, last)区间中的元素构造list1.4 拷贝构造 2 迭代器的使用2.1 begin end2.2 rbegin rend 3 容量操作3.1 empty size 4 获取元素4.1 front back 5 插入、删除、修改5.1 头插-push_front和尾插-push…...

mybatis的缓存机制

视频教程_免费高速下载|百度网盘-分享无限制 (baidu.com) MyBatis 有一套灵活而强大的缓存机制&#xff0c;主要分为两级缓存&#xff1a;一级缓存&#xff08;本地缓存&#xff09;和二级缓存&#xff08;全局缓存&#xff09;。 一级缓存&#xff08;本地缓存&#xff09;&a…...

ChatGLM3报错:No chat template is defined for this tokenizer

使用官方提供的脚本创建ChatGLM3的DEMO&#xff1a; cd basic_demo python web_demo_gradio.py 出现效果异常问题&#xff1a; conversation [{role: user, content: 你好}, {role: assistant, content: 你好&#xff0c;有什么我可以帮助你的吗&#xff1f;\n\n<|im_end|…...

大数据学习之Flink、搞懂Flink的恢复策略

第一章、Flink的容错机制 第二章、Flink核心组件和工作原理 第三章、Flink的恢复策略 第四章、Flink容错机制的注意事项 第五章、Flink的容错机制与其他框架的容错机制相比较 目录 第三章、Flink的恢复策略 Ⅰ、恢复策略 1. Checkpoint&#xff1a; 2. Savepoint&#…...

C语言易忘操作符全集

目录 位操作符 1.按位与(&) 2.按位或(|) 3.按位异或(^) 4.按位取反(~) 5.左移(<<) 6.右移(>>) 逻辑操作符 1.逻辑与&#xff08;&&&#xff09; 2.逻辑或&#xff08;||) 3.逻辑非&#xff08;&#xff01;&#xff09; 位操作符 1.按位与(…...

网络请求 mvp mvvm get post delete put 请求

get 参数拼接 如下接口 localhost:8080/uav/plotting/page/app?pageNum1&pageSize10&appIde3c59e28-2032-4ddf-a762-7cec96f772a4&orgId65&plottingTypepoint GET("https:/uav/plotting/page/app") Observable<PlotList.DataBean> allPoin…...

研究生开题报告撰写:文言一心VSChatgpt3.5

文言一心 问&#xff1a;我是一名研二学生&#xff0c;请帮我生成一份研究生毕设开题答辩ppt框架。 答&#xff1a;好的&#xff0c;以下是一份研究生毕设开题答辩PPT的框架&#xff0c;供您参考&#xff1a; 幻灯片1&#xff1a;封面页 标题&#xff1a;研究生毕设开题答辩…...

Unity animator动画倒放的方法

在Unity中&#xff0c; 我们有时候不仅需要animator正放的效果&#xff0c;也需要倒放的效果。但我们在实际制作动画的时候可以只制作一个正放的动画&#xff0c;然后通过代码控制倒放。 实现方法其实很简单&#xff0c;只需要把animator动画的speed设置为-1即为倒放&#xff…...

Dubbo源码解析第一期:如何使用Netty4构建RPC

一、背景 早期学习和使用Dubbo的时候&#xff08;那时候Dubbo还没成为Apache顶级项目&#xff09;&#xff0c;写过一些源码解读&#xff0c;但随着Dubbo发生了翻天覆地的变化&#xff0c;那些文章早已过时&#xff0c;所以现在计划针对最新的Apache Dubbo源码来进行“阅读理解…...

unity刷新grid,列表

获取UIGrid 组件&#xff0c;更新列表 listParent.GetComponent().repositionNow true;...

蓝桥杯备赛 day 3 —— 高精度(C/C++,零基础,配图)

目录 &#x1f308;前言&#xff1a; &#x1f4c1; 高精度的概念 &#x1f4c1; 高精度加法和其模板 &#x1f4c1; 高精度减法和其模板 &#x1f4c1; 高精度乘法和其模板 &#x1f4c1; 高精度除法和其模板 &#x1f4c1; 总结 &#x1f308;前言&#xff1a; 这篇文…...

人形机器人创新发展顶层设计与关键技术布局

系列文章目录 前言 随着新一轮科技革命和产业变革的深入推进&#xff0c;我国高度重视人形机器人的创新发展&#xff0c;提出了一系列具有前瞻性和战略性的指导意见。规划指出&#xff0c;到2025年&#xff0c;我国将初步建立人形机器人创新体系&#xff0c;攻克“大脑”、“小…...

C语言-算法-最小生成树

【模板】最小生成树 题目描述 如题&#xff0c;给出一个无向图&#xff0c;求出最小生成树&#xff0c;如果该图不连通&#xff0c;则输出 orz。 输入格式 第一行包含两个整数 N , M N,M N,M&#xff0c;表示该图共有 N N N 个结点和 M M M 条无向边。 接下来 M M M 行…...

android 扫描某个包下的所有类

注意事项 如果在用Android Studio开发过程中&#xff0c;如果新增了类&#xff0c;扫描不到。只能把APP卸载了&#xff0c;才能扫描到。 可能是Instance Run 的影响。 后面研究一下这篇文章&#xff0c;看看能不能解决 Android 遍历Apk下的所有类文件 package com.trs.nmip.…...

远程ssh 不通的原因之一

背景&#xff1a;我都想大喊一声&#xff0c;我上网是通的&#xff0c; ping网址是通的&#xff0c;ping www.baidu.com 是通的&#xff0c; 怎么都远程不了&#xff0c;报超时&#xff1b;嘿&#xff0c; 别人远程就能行。我都想挠头了。 目录 1. 先 ping 自己&#xff0c;…...

wamp集成环境部署

Windows下Apache服务器搭建 第一步&#xff1a;下载Windows下的最新ZIP压缩包 推荐下载网址&#xff1a;http://www.apachelounge.com/download/ 为了让Apache服务器发挥更好的性能&#xff0c;请根据自己的系统选择下载&#xff0c;如果不清楚自己的系统是64位还是32位&am…...

使用antd design pro 及后端nodejs express 结合minio进行文件的上传和下载管理

使用Ant Design Pro前端框架结合Node.js Express后端服务以及MinIO作为对象存储&#xff0c;实现文件上传和下载管理的基本步骤如下&#xff1a; 1. 安装所需依赖 在Node.js Express项目中安装minio客户端库&#xff1a; npm install minio --save 在前端项目&#xff08;假…...

Unity常用的优化技巧集锦

Unity性能优化是面试的时候经常被问道的一些内容&#xff0c;今天给大家分享一些常用的Unity的优化技巧和思路&#xff0c;方便大家遇到问题时候参考与学习。 对啦&#xff01;这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白&#xff0c;也有一些正在从事游…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...