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

helm---自动化一键部署

什么是helm??

在没有这个helm之前,deployment service ingress helm的作用就是通过打包的方式,把deployment service ingress 这些打包在一块,一键式部署服务,类似于yum

官方提供的一个类似于安装仓库的功能,可以实现一键化部署应用。

helm的概念:

三个部分组成:

cahrt:helm软件包,service ingress ,定义好的yaml资源,类似于yum的rpm包。

Release:可以理解为版本,也可以理解为在安装过程中,给这个部署的应用起一个名称。

Repository:仓库,提供一个服务器,这个服务器中包含chart的资源。yaml的资源保存地址。

常用命令

#查看仓库

helm repo list

#更新仓库资源

helm repo update

#搜索bitnami仓库中nginx

helm search repo bitnami | grep nginx

#查看chart信息

helm show chart bitnami/nginx

#查看详细信息

helm show all bitnami/nginx

#查看helm所有的安装

helm list

helm部署

tar -xf helm-v3.12.0-linux-amd64.tar.gz
cd linux-amd64/
mv helm /usr/local/bin/helm
helm version
vim /etc/profile
***
source <(helm completion bash)
***
source /etc/profile

#添加仓库

helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add stable http://mirror.azure.cn/kubernetes/charts
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
helm repo add incubator https://charts.helm.sh/incubator

#helm安装

法一:
helm insatll my-nginx bitnami/nginx -n 指定命名空间
helm install: 安装
my-nginx: release 安装的名称或者版本
bitnami/nginx:bitnami仓库名,nginx就是chart 一系列yaml资源的集合法二---随机命名
helm install bitnami/nginx --generate-name

#卸载

helm uninstall my-nginx

helm自定义模版

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

从stable仓库拉取mysql

helm pull stable/mysql

命令行创建

helm create nginx[root@master01 helm]# tree nginx/
nginx/
├── charts
├── Chart.yaml
├── templates
│   ├── deployment.yaml
│   ├── _helpers.tpl
│   ├── hpa.yaml
│   ├── ingress.yaml
│   ├── NOTES.txt
│   ├── serviceaccount.yaml
│   ├── service.yaml
│   └── tests
│       └── test-connection.yaml
└── values.yamlcharts: 用于存储依赖,如果这个chart依赖于其他的chart,依赖文件保存在这个目录。
Chart.yaml: helm chart 的元数据文件,包含了这个chart的名称,版本,维护者信息等等
templates: 包含清单模版的目录。
deployment.yaml:部署应用的模版文件
helpers.tpl: 帮助文档,告诉用户如何来定义模版的值
hpa.yaml: 定义了应用程序副本数的扩缩容行为
ingress.yaml: 定义了外部流量如何转发到用于程序
NOTES.txt:注意事项
serviceaccount.yaml: 应用程序的服务账号
service.yaml: 集群内部的访问
tests test-connection.yaml: 测试的目录和文件,部署完chart之后,用来测试的文件
values.yaml: 核心文件,自定义的值,都是通过values.yaml,把我们数据看盖到安装的chart

语法检测

helm lint nginx
[root@master01 helm]# helm lint nginx
==> Linting nginx
[INFO] Chart.yaml: icon is recommended1 chart(s) linted, 0 chart(s) failed[root@master01 helm]

vim Chart.yaml

vim values.yaml

#将修改的nginx封装

helm package nginx测试
helm install nginx-1.11 ./nginx --dry-run --debug
helm install 安装chart
nginx-11: release 版本号
./nginx:当前目录下的nginx的chart
-dry-run --debug: 这个chart不会被部署到集群当中,参数验证,测试chart的配置是否正确.安装
[root@master01 helm]# helm install nginx-11 ./nginx -n default
查看
[root@master01 helm]# kubectl get pod

修改chart之后重新部署

vim values.yaml

vim templates/service.yaml

检测语法
helm lint nginx更新
helm upgrade nginx-11 nginx查看service
kubectl get svc

回滚

查看历史更新
helm history nginx-11回滚
helm rollback nginx-11 1

上传仓库

./install

创建路径
mkdir -p ~/.local/share/helm/plugins/helm-push解压
tar -xf helm-push_0.8.1_linux_amd64.tar.gz -C ~/.local/share/helm/plugins/helm-push/登录
docker login -u admin -p123456 https://hub.test.com压缩成包
helm package nginx上传
helm push nginx-0.2.0.tgz oci://hub.test.com/charts --insecure-skip-tls-verify
--insecure-skip-tls-verify 跳过tls验证下载
helm pull oci://hub.test.com/charts/nginx --version 0.2.0 --insecure-skip-tls-verify
--insecure-skip-tls-verify 跳过tls验证

总结:

helm一键部署微服务的工具,可以跳过繁琐的自定义的yaml过程,一健式的拉取和部罢好所有自定义或者模版定义的服务。

helm的常用命令:

添加仓库
helm repo add 仓库名 url地址 
helm repo remove 仓库名
helm repo update 不加仓库名,就是更新所有仓库
helm repo list 仓库列表
helm show chart stable/nginx 查看chart信息
helm show all stable/nginx 查看详细信息
helm install nginx-11 table/nginx -n lucky-cloud 安装chart,安装官网的默认版本
helm uninstall nginx-11 删除安装好的chart
helm list 查看已经安装chart
helm lint nginx  检测语法自定义模版:
helm create nginx 创建一个自定义的chart模版
values.yaml: 这里值会传给templates里面的yaml文件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

相关文章:

helm---自动化一键部署

什么是helm?? 在没有这个helm之前&#xff0c;deployment service ingress helm的作用就是通过打包的方式&#xff0c;把deployment service ingress 这些打包在一块&#xff0c;一键式部署服务&#xff0c;类似于yum 官方提供的一个类似于安装仓库的功能&#xff0c;可以实…...

求助帖(setiosflags)的左右对齐问题:

以后自己要注意&#xff0c;如果两个相互矛盾的标志同时被设置&#xff0c;如先设置 setiosflags(ios::right)&#xff0c;然后又设置 setiosflags(ios::left)&#xff0c;那么结果可能就是两个标志都不起作用。因此&#xff0c;在设置了某标志&#xff0c;又要设置其他与之矛盾…...

升级8.0:民生手机银行的“内容解法”

数字化浪潮&#xff0c;滚滚来袭。 随着数字中国建设的持续推进&#xff0c;数字经济正在蓬勃发展。中商产业研究院分析师预测&#xff0c;2023年中国数字经济市场规模将增长至56.7万亿元&#xff0c;占GDP的比重将达到43.5%。 在此浪潮下&#xff0c;数字化的触角蔓延到各行…...

Kubernetes多租户实践

由于namespace本身的限制&#xff0c;Kubernetes对多租户的支持面临很多困难&#xff0c;本文梳理了K8S多租户支持的难点以及可能的解决方案。原文: Multi-tenancy in Kubernetes 是否应该让多个团队使用同一个Kubernetes集群? 是否能让不受信任的用户安全的运行不受信任的工作…...

【GEE】GEE反演地表温度相关问题说明(空洞、Landsat9数据集等)

之前分享了基于GEE-Landsat8数据集地表温度反演&#xff08;LST热度计算&#xff09;&#xff0c;最近有很多小伙伴私信我很多问题&#xff0c;一一回复太慢了&#xff0c;所以今天写篇文章统一回答一下大家的问题。 问题1&#xff1a;数据有很多空洞、某些条带没有数据等 问题…...

【蓝桥备赛】数组分割——组合数学?

题目链接 数组分割 个人思路 两个数组都需要和为偶数&#xff0c;那么就去思考一个数组如何才能和是偶数呢&#xff1f;&#xff1f; 数组里肯定要么是奇数要么是偶数&#xff0c;偶数无论有多少个&#xff0c;都不会改变一个数组的奇偶性。但是奇数个奇数的和还是奇数&…...

iphone5s基带部分电源部分主主电源供电及

时序: 1.,基带电源的供电&#xff0c;基带电源也叫pmu。 首先时序图说电池提供供电&#xff0c;电池是J6接口&#xff0c;视频习惯把接口称之为座子。查U2_RF芯片&#xff0c;发现供电信号为PP_BATT_VCC_CONN&#xff0c;但是没查到跟电池座子有关系&#xff0c;电池座子写的是…...

【每日一题】按分隔符拆分字符串

文章目录 Tag题目来源解题思路方法一&#xff1a;遍历方法二&#xff1a;getline 写在最后 Tag 【遍历】【getline】【字符串】【2024-01-20】 题目来源 2788. 按分隔符拆分字符串 解题思路 方法一&#xff1a;遍历 思路 分隔符在字符串开始和结束位置时不需要处理。 分隔…...

spawn_group_template | spawn_group | linked_respawn

字段介绍 spawn_group | spawn_group_template 用来记录与脚本事件或boss战斗有关的 creatures | gameobjects 的刷新数据linked_respawn 用来将 creatures | gameobjects 和 boss 联系起来&#xff0c;这样如果你杀死boss&#xff0c; creatures | gameobjects 在副本重置之前…...

软考系分之计算机网络规划设计、综合布线、RAID和网络存储等

文章目录 1、概要2、网络的三层模型3、综合布线系统4、廉价磁盘冗余阵列&#xff08;RAID&#xff09;5、网络存储6、总结 1、概要 本篇重点介绍计算机网络中的网络规划设计、综合布线、RAID和网络存储。 2、网络的三层模型 三层模型分为核心层、汇聚层和接入层&#xff0c;接…...

使用ElEment组件实现vue表单校验空值

1.绑定表单组件数组rules 2.在data域中设定组件rules 3.设定调用方法函数 提交校验 取消&#xff1a; 测试页面 提交空值 失去焦点 取消重置 提交后重置...

processing集训day01

介绍 Processing是一门开源编程语言&#xff0c;提供了对图片&#xff0c;动画和声音进行编程的环境。学生&#xff0c;艺术家&#xff0c;设计师&#xff0c;建筑师&#xff0c;研究人员和业余爱好者可以使用Processing进行学习&#xff0c;制作原型以及作为生产工具。你可以…...

java面试——juc篇

目录 一、线程基础 1、进程与线程的区别&#xff1f;&#xff08;⭐⭐⭐&#xff09; 2、并行和并发的区别&#xff08;⭐&#xff09; 3、创建线程的方式有哪些&#xff1f;&#xff08;⭐⭐⭐⭐&#xff09; runnable和Callable的区别&#xff1a; 线程中的run()和 star…...

CSS 实现卡片以及鼠标移入特效

CSS 实现卡片以及鼠标移入特效 文章目录 CSS 实现卡片以及鼠标移入特效0、效果预览默认鼠标移入后 1、创建卡片组件2、添加样式3、完整代码 0、效果预览 默认 鼠标移入后 在本篇博客中&#xff0c;我们将探讨如何使用 CSS 来实现卡片组件&#xff0c;并添加鼠标移入特效&#…...

芯课堂 | SWM34S系列驱动TFT-LCD显示模组应用基本注意事项

1、确认硬件的连接、包括电源、地、RGB 数据线、DCLK\DE\HSYNC\VSYNC 等&#xff0c;显示模组有 DISP、RESET、CS、SCL、SDA 等。 2、确认各电压的正常&#xff0c;包括电源&#xff0c;部分有 IOVCC、VGL、VGH、VCOM 等电压 3、如果应用的 TFT-LCD 模组非演示例程中已适配调…...

java8 列表通过 stream流 根据对象属性去重的三种实现方法

java8 列表通过 stream流 根据对象属性去重的三种实现方法 一、简单去重 public class DistinctTest {/*** 没有重写 equals 方法*/SetterGetterToStringAllArgsConstructorNoArgsConstructorpublic static class User {private String name;private Integer age;}/*** lombo…...

鸿蒙开发DevEco Studio Setup 工具认识及使用

1、界面认识 1.1 创建页面之前理解Ability 1.2 理解stage模式 1.3 工程级别目录结构 1.4 模块级别目录...

程序员裁员潮:技术变革下的职业危机

程序员裁员潮&#xff1a;技术变革下的职业危机 一对来自中国的工程师夫妻在美身亡&#xff0c;疑因谷歌裁员致悲剧发生。在技术变革下&#xff0c;裁员对于程序员的影响到底有多大&#xff1f;快来和我们分享一下你的看法吧~ 哎&#xff0c;这是悲哀&#xff0c;让我又想起来…...

Cesium快速入门

文章目录 0.引言1.Cesium环境搭建1.1安装Node.js环境1.2配置Cesium依赖 2.搭建第一个Cesium程序2.1引入源码编译结果2.2创建html文件2.3编写第一个Cesium程序2.4申请许可密钥2.5发布Cesium程序服务 3.界面介绍4.默认控件介绍 0.引言 现有的gis开发方向较流行的是webgis开发&am…...

Android.mk和Android.bp的区别和转换详解

Android.mk和Android.bp的区别和转换详解 文章目录 Android.mk和Android.bp的区别和转换详解一、前言二、Android.mk和Android.bp的联系三、Android.mk和Android.bp的区别1、语法&#xff1a;2、灵活性&#xff1a;3、版本兼容性&#xff1a;4、向后兼容性&#xff1a;5、编译区…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...