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

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

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

相关文章

基于springboot+vue新能源汽车充电管理系统

摘要 新能源汽车充电管理系统是基于Spring Boot和Vue.js技术栈构建的一款先进而高效的系统&#xff0c;旨在满足不断增长的新能源汽车市场对充电服务的需求。该系统通过整合前后端技术&#xff0c;实现了用户注册、充电桩管理、充电订单管理等核心功能&#xff0c;为用户提供便…

vue的vue-resource和axios介绍

在Vue项目中前后端交互时&#xff0c;早期Vue使用Vue-resource实现异步请求。 从Vue2.0之后就不再对vue-resource进行更新&#xff0c;Vue官方推荐使用axios。 一、vue-resource Vue.js的插件提供了使用XMLHttpRequest 或 JSONP进行Web请求和处理响应的服务。vue-resource像jQ…

使用DTS实现TiDB到GaiaDB数据迁移

1 概览 本文主要介绍通过 DTS 数据迁移功能&#xff0c;结合消息服务 for Kafka 与 TiDB 数据库的 Pump、Drainer 组件&#xff0c;完成从TiDB迁移至百度智能云云原生数据库 GaiaDB。 消息服务 for Kafka&#xff1a;详细介绍参见&#xff1a;消息服务 for Kafka 产品介绍百度智…

go 语言中 json.Unmarshal([]byte(jsonbuff), j) 字节切片得使用场景

struct_tag的使用 在上面的例子看到&#xff0c;我们根据结构体生成的json的key都是大写的&#xff0c;因为结构体名字在go语言中不大写的话&#xff0c;又没有访问权限&#xff0c;这种问题会影响到我们对json的key的名字&#xff0c;所以go官方给出了struct_tag的方法去修改…

R语言rvest爬虫如何设置ip代理?

前言 在R语言中使用rvest进行网络爬虫时&#xff0c;可以使用代理服务器来隐藏真实IP地址。有一些R包可以帮助爬虫中设置代理&#xff0c;其中一个常用的包是httr。以下是一个简单的例子&#xff0c;演示如何在rvest中设置IP代理 教程 一、获取代理IP并提取 二、详情设置 l…

golang常用库之-golang-jwt/jwt包

文章目录 golang常用库之-golang-jwt/jwt包golang-jwt/jwt包使用demo golang常用库之-golang-jwt/jwt包 golang-jwt/jwt包 github&#xff1a; https://github.com/golang-jwt/jwt golang-jwt/jwt 是一个在 Go 语言中使用 JSON Web Tokens&#xff08;JWT&#xff09;进行身…

2024三掌柜赠书活动第四期: Next.js实战,构建现代化的可扩展Web应用

目录 摘要前言Next.js简介关于《 Next.js实战》实战示例最佳实践和进阶应用编辑推荐内容简介作者简介图书目录书中前言/序言《Next.js实战》全书速览结束语 摘要&#xff1a;本文将介绍Next.js&#xff0c;一个流行的React框架&#xff0c;以及如何在实际项目中使用Next.js构…

Linux中timerfd系列函数使用指南

timerfd_create, timerfd_settime, timerfd_gettime系列函数将定时器的实现与文件描述符绑定在一起&#xff0c;定时器超时的那一刻文件描述符变得可读&#xff0c;因此可以很好的与 select、poll 和 epoll 结合在一起使用。 timerfd_create 系统调用将创建一个定时器并与一个…

OSPF协议LSDB同步过程和邻居状态机

知识改变命运&#xff0c;技术就是要分享&#xff0c;有问题随时联系&#xff0c;免费答疑&#xff0c;欢迎联系&#xff01; 厦门微思网络​​​​​​ https://www.xmws.cn 华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-Datacom Linux\RHCE\RHCE 9.0\RHCA\ Oracle O…

技术型企业如何选择安全、性价比高的FTP替代方案?

FTP作为世界上第一款文件传输协议&#xff0c;在全球范围内应用广泛&#xff0c;它解决了文件传输协议空白的问题&#xff0c;为文件传输场景提供了专业的解决方案。 但随着网络技术的演进&#xff0c;技术型企业进行文件传输的需求也更多元和复杂&#xff0c;FTP的缺陷也更多的…

Flutter中的AppLifecycleListener:应用生命周期监听器介绍及使用

引言 当你在Flutter中需要监听应用程序的生命周期变化时&#xff0c;可以使用AppLifecycleListener。在Flutter 3.13中&#xff0c;AppLifecycleListener被添加到Framework中&#xff0c;用于监听应用程序的生命周期变化&#xff0c;并响应退出应用程序的请求等支持。 在Flut…

CmakeList教程

一、CmakeList介绍&#xff1a; cmake 是一个跨平台、开源的构建系统。它是一个集软件构建、测试、打包于一身的软件。它使用与平台和编译器独立的配置文件来对软件编译过程进行控制。它会通过写的语句自动生成一个MakeFile,从而实现高效编译 二、CmakeList的常用指令 1.指定…

【 CSS 】定位

不要因为小小的失败而放弃大大的梦想&#xff0c;每一次坚持都是通向成功的一步。- 马克吐温 1. 定位 1.1 为何使用定位 我们先来看一个效果&#xff0c;同时思考一下用标准流或浮动能否实现类似的效果&#xff1f; 场景1: 某个元素可以自由的在一个盒子内移动位置&#xff0c…

#Uniapp:uni.request(OBJECT)

uni.request(OBJECT) 发起网络请求。 示例 uni.request({url: https://www.example.com/request, //仅为示例&#xff0c;并非真实接口地址。data: {text: uni.request},header: {custom-header: hello //自定义请求头信息},success: (res) > {console.log(res.data);thi…

微服务基础概念、架构图、划分图

基础概念 1、微服务 微服务架构风格&#xff0c;就像是把一个单独的应用程序&#xff0c;就像是把一个单独的应用程序开发为一套小服务&#xff0c;每个小服务运行在自己的进程中&#xff0c;并使用轻量级机制通信&#xff0c;通常是http api。这些服务围绕业务能力来构建。并…

Java 日期处理

主要从以下三方面讲解&#xff1a; java.util 包提供了 Date 类来封装当前的日期和时间。java.util 包提供了 Calendar 类用来设置和获取日期数据的特定部分。java.text 包提供了 SimpleDateFormat 类来格式化日期的格式。 Date类 Date类的构造函数 Date 类主要提供了两个构…

小程序学习-21

目前小程序分包大小有以下限制&#xff1a; 整个小程序所有分包大小不超过 20M单个分包/主包大小不能超过 2M 独立分包&#xff1a;"independent": true

docker compose安装milvus

下载对应版本的milvus-standalone-docker-compose.yml wget https://github.com/milvus-io/milvus/releases/download/v2.3.5/milvus-standalone-docker-compose.yml重新命令为docker-compose.yml mv milvus-standalone-docker-compose.yml docker-compose.yml启动milvus doc…

记一次 stackoverflowerror 线上排查过程

一.线上 stackOverFlowError xxx日,突然收到线上日志关键字频繁告警 classCastException.从字面上的报警来看,仅仅是类型转换异常,查看细则发现其实是 stackOverFlowError.很多同学面试的时候总会被问到有没有遇到过线上stackOverFlowError?有么有遇到栈溢出?具体栈溢出怎么来…

postman测试导入文件

01 上传文件参数 1.选择请求方式 选择post请求方式&#xff0c;输入请求地址 2.填写Headers Key&#xff1a;Content-Type &#xff1b; Value&#xff1a;multipart/form-data 如下图 3.填写body 选择form-data&#xff0c;key选择file类型后value会出现按钮&#xff0…