K8S的helm

helm的作用 

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

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

Helm的概念

由三个部分组成

1chart:helm的软件包,包括部署包,service,ingress,是一些定义好的yaml资源,类似于yum的rpm包
2

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

3

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

helm3纯命令行方式

                                               常用的仓库

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 Helm Incubator | charts.heml.sh/incubator

helm install my-nginx bitnami/nginx

helm install:安装

My-nginx:release安装的名称或者版本

Bitnami/nginx:bitnami仓库名,nginx就是chart一系列yaml资源的集合

Helm自定义模版

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

Charts:用于存储依赖,如果这个chart依赖于其他的chart,依赖文件保存在这个目录

Chart.Yaml:helm chart的元数据文件,包含了这个chart的名称,版本,维护者信息等等

Yemplates: 包含清单模版的目录

Deployment.yaml:部署应用的模版文件

Helpers.tpl:帮助文档,告诉用户如何来定义模版的值

Hapa.yaml:定义了应用程序副本数的扩缩容行为

Ingress.yaml:定义了外部流量如何转发到应用程序

NOTES.txt:注意事项

Serviceaccount.yaml:应用程序的服务账号

Service.yaml:集群内部的访问

Tests test-connection.yaml:测试的目录和文件,部署完chart之后,用来测试的文件

Values.yaml:核心文件,自定义的值,都是通过values.yaml,把我们数据覆盖到安装的chart

Helm install nginx-11 ./nginx --dry-run-debug

Helm Install:安装chart

nginx-1.1:release 版本号

./ngin:当前目录下的nginx的chart

--dry-run-debug:这个chart不会被部署到集群当中,参数验证,测试chart的配置是否正确

修改chart之后如何重新部署,回滚,上传harbor

Helm的常用命令

1.helm repo add+仓库名+url地址  ,添加仓库
2.helm repo update +仓库名 ,不加仓库名,就是更新所有仓库
3.helm repo list +仓库列表
4.helm repo remove +仓库名称
5.helm show chart stable/nginx  查看chart信息
6.helm show all stable/nginx 查看详细信息
7.Helm install ngin-11 stable/nginx -n lucky-cloud 安装chart,安装官网的默认版本
8.Helm uninstall nginx-11 删除安装好的chart
9.Helm list 查看已安装的chart如何自定义模版:
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

实验

[root@master01 ~]# cd /opt
[root@master01 opt]# mkdir helm
[root@master01 opt]# cd helm/
[root@master01 helm]# ls
[root@master01 helm]# ls
helm-v3.12.0-linux-amd64.tar.gz
[root@master01 helm]# tar -xf helm-v3.12.0-linux-amd64.tar.gz
[root@master01 helm]# ls
helm-v3.12.0-linux-amd64.tar.gz  linux-amd64
[root@master01 helm]# cd linux-amd64/
[root@master01 linux-amd64]# mv helm /usr/local/bin/helm
[root@master01 linux-amd64]# helm version
version.BuildInfo{Version:"v3.12.0", GitCommit:"c9f554d75773799f72ceef38c51210f1842a1dea", GitTreeState:"clean", GoVersion:"go1.20.3"}
[root@master01 linux-amd64]# vim /etc/profile
source <(helm completion bash)
#添加自动补齐[root@master01 linux-amd64]# source /etc/profile
#立即生效
[root@master01 linux-amd64]# helm repo list
NAME            URL
bitnami         https://charts.bitnami.com/bitnami
stable          http://mirror.azure.cn/kubernetes/charts
incubator       https://charts.helm.sh/incubator
#查看当前仓库有哪些[root@master01 linux-amd64]# helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "stable" chart repository
...Successfully got an update from the "bitnami" chart repository
...Successfully got an update from the "incubator" chart repository
Update Complete. ⎈Happy Helming!⎈
#如何更新仓库,不加仓库名就是全部更新[root@master01 linux-amd64]# helm search repo bitnami | grep nginx
bitnami/nginx                                   15.9.0          1.25.3          NGINX Open Source is a web server that can be a...
bitnami/nginx-ingress-controller                10.1.0          1.9.5           NGINX Ingress Controller is an Ingress controll...
bitnami/nginx-intel                             2.1.15          0.4.9           DEPRECATED NGINX Open Source for Intel is a lig...
#指定使用bitnami 仓库查看是否有 nginx 的yaml资源, 15.9.0 这个是仓库里的版本,1.25.3 这个是nginx 的版本,搜索资源[root@master01 linux-amd64]# helm show chart bitnami/nginx
#查看详细信息
[root@master01 linux-amd64]# helm show all bitnami/nginx
#查看所有详细信息helm install my-nginx bitnami/nginx
#helm install 安装 , my-nginx 安装的名称或者版本 ,bitnami/nginx  bitnami仓库名,nginx就是chart一系列yaml资源的集合删除
helm uninstall my-nginxhelm install bitnami/nginx --generate-nam
--generate-name 随机指定Release名称helm ls 查看所有安装Release

helm自定义模版

helm pull stable/mysql
#拉取包(mysql)解压
tar -xf mysql-1.6.9.tgz创建nginx
helm create nginx查看创建的nginx的目录
tree nginxnginx/
├── 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的名称,版本,维护者信息等等
Template	包含清单模版目录
deployment.yaml	部署应用的模版文件
helpers.tpl	帮助文档,告诉用户如何来定义模版的值
hpa.yaml	定义了应用程序副本数的扩缩容行为
ingress.yaml	定义了外部流量如何转发到应用程序
NOTES.txt	注意事项
serviceaccount.yaml	应用程序的服务账号
service.yaml	集群内部的访问
tests test-connection.yaml	测试的目录和文件,部署完chart之后,用来测试的文件
values.yaml	核心文件,自定义的值,都是通过values.yaml,把我们数据覆盖到安装的chart修改values.yaml# Default values for nginx.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.replicaCount: 3
#创建的副本数image:repository: nginxpullPolicy: IfNotPresent# Overrides the image tag whose default is the chart appVersion.tag: "1.22"
#指向镜像的版本安装
方式1
helm install nginx-11 ./nginx -n default
方法二
helm install nginx-11 /opt/helm/linux-amd64/nginx-0.1.0.tgz -n default
删除
helm uninstall nginx-11

修改chart之后重新部署

修改values.yaml
.......
service:type: NodePortport: 80nodePort: 31000
ingress:enabled: falseclassName: ""annotations: {}
......修改service.yaml
apiVersion: v1
kind: Service
metadata:name: {{ include "nginx.fullname" . }}labels:{{- include "nginx.labels" . | nindent 4 }}
spec:type: {{ .Values.service.type }}ports:- port: {{ .Values.service.port }}targetPort: httpprotocol: TCPname: httpnodePort: {{.Values.service.nodePort}}selector:{{- include "nginx.selectorLabels" . | nindent 4 }}检测
helm lint nginx更新
helm upgrade nginx-11 nginx

回滚

查看回滚
helm history nginx-11
REVISION	UPDATED                 	STATUS    	CHART      	APP VERSION	DESCRIPTION     
1       	Sun Jan 21 21:17:54 2024	superseded	nginx-0.1.0	1.16.0     	Install complete
2       	Sun Jan 21 21:46:04 2024	deployed  	nginx-0.2.0	1.16.0     	Upgrade completehelm rollback nginx-11 1

上传harbor

修改Harbor
.....
harbor_admin_password: 123456
chart:absolute_url: enabled
......运行脚本
./install.shmkdir -p  ~/.local/share/helm/plugins/helm-pushtar -xf helm-push_0.8.1_linux_amd64.tar.gz -C ~/.local/share/helm/plugins/helm-pushdocker login -u admin -p 123456 https://hub.test.com上传
helm push nginx-0.2.0.tgz oci://hub.test.com/charts --insecure-skip-tls-verif

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

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

相关文章

大数据开发之Scala

第 1 章&#xff1a;scala入门 1.1 概述 scala将面向对象和函数式编程结合成一种简洁的高级语言 特点 1、scala和java一样属于jvm语言&#xff0c;使用时都需要先编译为class字节码文件&#xff0c;并且scala能够直接调用java的类库 2、scala支持两种编程范式面向对象和函数式…

Maven工程继承和聚合关系

1. Maven工程继承关系 1.1 继承概念 Maven 继承是指在 Maven 的项目中&#xff0c;让一个项目从另一个项目中继承配置信息的机制。继承可以让我们在多个项目中共享同一配置信息&#xff0c;简化项目的管理和维护工作。 1.2 继承作用 在父工程中统一管理项目中的依赖信息。 …

初识 JVM

什么是JVM JVM 全称是 J ava V irtual M achine&#xff0c;中文译名 Java虚拟机 。 JVM 本质上是一个运行在计算机上的程序&#xff0c;他的职责是运行 Java字节码文件 。 JVM的功能 Java语言如果不做任何优化&#xff0c;性能不如C、C等语言。 Java需要实时解释&…

什么是网络安全?网络安全概况

网络安全涉及保护我们的计算机网络、设备和数据免受未经授权的访问或破坏。 这个领域包括多种技术、过程和控制措施&#xff0c;旨在保护网络、设备和数据免受攻击、损害或未授权访问。网络安全涉及多个方面&#xff0c;包括但不限于信息安全、应用程序安全、操作系统安全等 …

仓储管理系统——软件工程报告(详细设计)④

详细设计 一、系统功能模块的划分 根据系统的功能性需求&#xff0c;本文将部队仓库管理系统分为以下六大模块&#xff1a;系统管理模 块、基础数据模块、出入库管理模块、库存管理模块、仓库信息管理模块、作业管理模 块&#xff0c;每个模块内部又分为很多小功能模块&#…

ADC的工作原理总结

ADC和DAC是联系连续和离散的重要桥梁&#xff0c;是信号采集和处理的重要环节。 这里我们先认识下ADC&#xff0c;聊一聊ADC的工作原理。 信号为何要相互转换&#xff1f; 模拟信号和数字信号的特点 自然界中大多数都是连续的模拟信号&#xff0c;模拟信号容易受到干扰&#…

华为AC+FIT AP组网配置

AC配置 vlan batch 100 to 101dhcp enableip pool apgateway-list 192.168.100.254 network 192.168.100.0 mask 255.255.255.0 interface Vlanif100ip address 192.168.100.254 255.255.255.0dhcp select globalinterface GigabitEthernet0/0/1port link-type trunkport trun…

Pixelmator Pro Mac版 v3.5 图像处理软件 兼容 M1/M2

在当今数字化时代&#xff0c;图像编辑软件成为了许多人必备的工具之一。无论您是摄影师、设计师还是普通用户&#xff0c;您都需要一款功能强大、易于使用的图像编辑软件来处理和优化您的照片和图像。而Pixelmator Pro for Mac正是满足这一需求的理想选择。 Pixelmator Pro f…

gradle构建spring-framework源码

5.3.22版本构建 通过启动的jvm参数配置代理下载 Could not download jruby-stdlib-9.2.20.1.jar (org.jruby:jruby-stdlib:9.2.20.1) Could not get resource https://repo.maven.apache.org/maven2/org/jruby/jruby-stdlib/9.2.20.1/jruby-stdlib-9.2.20.1.jar. Could not GE…

python+PyQt5 网口功能测试

UI界面&#xff1a; 源代码&#xff1a; # -*- coding: utf-8 -*-# Form implementation generated from reading ui file NetOpeningWinFrm.ui # # Created by: PyQt5 UI code generator 5.15.2 # # WARNING: Any manual changes made to this file will be lost when pyuic5…

springcloud alibaba sentinel熔断降级

简介 随着微服务的流行&#xff0c;服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点&#xff0c;从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 sentinel相当于hystrix的升级版&#xff0c;加入了web界面&#xff0c;能够实时在线的改变流…