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/helm

helm 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 list

helm 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 的 namespace
 
helm 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 nginx
 
tree nginx

vim /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

如何部署自定义的chart

helm 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-push
 
 tar -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.com
 
  helm package nginx
Successfully packaged chart and saved it to: /opt/helm/nginx-0.2.0.tgz


helm 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 删除安装好的chart

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

矿泉水硝酸盐超标污染的解决办法

硝酸盐污染对饮用水资源的威胁日益严重&#xff0c;对公共健康和环境造成潜在风险。本文从硝酸盐污染的成因、健康影响、现行去除技术以及综合管理策略等方面进行全面分析&#xff0c;旨在为饮用水安全领域的研究和实践提供参考。 一、硝酸盐污染的成因与影响 成因&#xff1…

深度学习(4)--Keras安装

目录 Keras安装: 1.1.安装CUDA/cuDDN工具包 1.1.1.安装前准备 1.1.2.安装CUDA 1.1.3.安装cuDDN 1.2.安装Anaconda 1.3.安装tensorflow框架 1.3.1.使用cmd安装 1.3.2.使用Anaconda Prompt安装 1.4.安装Keras框架 1.5.打开jupyter notebook&#xff0c;执行import调用 Keras…

Mysql运维篇(二) 主从复制

一路走来,所有遇到的人,帮助过我的、伤害过我的都是朋友,没有一个是敌人,如有侵权请留言,我及时删除。 一、主从复制的原理 主库会生成一个I/O操作线程进去写的的操作,而从库则生成两个线程,其一是I/O读取线程,其二是一个SQL线程。 1、主库将数据的操作记录到一个二进…

numpy 多项式拟合函数polyfit的使用

import numpy as np def fit(x,y,m,w):if len(x)<m:return Falsexishu np.polyfit(x,y,m,ww)p np.poly1d(xishu) # 构造多项式yfit p(x) # 拟合的y值yresid y - yfit # 残差SSresid sum(pow(yresid, 2)) # 残差平方和SStotal len(y) * np.var(y) # 总体平均方差if SSt…

强化学习:MuJoCo机器人强化学习仿真入门

声明&#xff1a;我们跳过mujoco环境的搭建&#xff0c;搭建环境不难&#xff0c;可自行百度 下面开始进入正题&#xff08;需要有一定的python基础与xml基础&#xff09;&#xff1a; 下面进入到建立机器人模型的部分&#xff1a; 需要先介绍URDF模型文件和导出MJCF格式 介绍完…

Android 集成百度人脸采集

app端使用活体检测&#xff0c;通过活体检测后&#xff0c;采集人像&#xff0c;base64格式&#xff0c;调接口后台判断人脸对比结果返回给app 1.官网地址&#xff1a; 人脸识别_人脸检测_人脸对比_人脸搜索_活体检测_百度智能云 (baidu.com) 里面有详细的集成步骤和说明 ​…

[设计模式Java实现附plantuml源码~创建型] 产品族的创建——抽象工厂模式

前言&#xff1a; 为什么之前写过Golang 版的设计模式&#xff0c;还在重新写Java 版&#xff1f; 答&#xff1a;因为对于我而言&#xff0c;当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言&#xff0c;更适合用于学习设计模式。 为什么类图要附上uml 因为很…

k8s-helm

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

【ARMv8M Cortex-M33 系列 7 -- RA4M2 移植 RT-Thread 问题总结】

请阅读【嵌入式开发学习必备专栏 】 文章目录 问题小结栈未对齐 经过几天的调试&#xff0c;成功将rt-thead 移植到 RA4M2&#xff08;Cortex-M33 核&#xff09;上&#xff0c;thread 和 shell 命令已经都成功支持。 问题小结 在完成 rt-thread 代码 Makefile 编译系统搭建…

.NET Core使用SkiaSharp快速生成二维码( 真正跨平台方案)

前言 在.NET 6之前我们一直是使用QRCoder来生成二维码&#xff08;QRCoder是一个非常强大的生成二维码的组件&#xff0c;用到了System.Drawing.Common 包&#xff09;&#xff0c;然后从.NET 6开始&#xff0c;当为非 Windows 操作系统编译引用代码时&#xff0c;平台分析器会…

TS学习笔记八:命名空间

本节介绍命名空间相关内容&#xff0c;包括命名空间的作用、实现方式、注意事项、命名空间和模块的区别等内容。 由于全局作用域下&#xff0c;有可能会导致命名冲突&#xff0c;使用命名空间之后就可以通过命名空间组织代码&#xff0c;将代码封装到不同的命名空间当中&#x…

GPTBots:利用FlowBot中的卡片和表单信息,提供丰富的客服体验

在当今的数字化时代&#xff0c;客户服务的形式和体验正在经历着前所未有的变革。传统的文字消息方式已经无法满足现代用户对于服务体验的多元化需求。那么&#xff0c;如何才能在这个信息爆炸的时代&#xff0c;让我们的服务方式更加个性化、多样化&#xff0c;从而提供更丰富…

MySQL-查询SQL语句

阅读目录 1.基础查询2.高级多表查询 回到顶部 1.基础查询 范围查询 在范围in select 字段 from 表名 where 字段 in (值,值); select id from stu where id in (2,3); 不在范围not in select 字段 from 表名 where 字段 in (值,值); select id from stu where id not in…

【RabbitMQ】RabbitMQ安装与使用详解以及Spring集成

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《RabbitMQ实战》。&#x1f3af;&#x1f3af; &am…

JVM实战篇:GC调优

目录 一.GC调优的核心指标 1.1吞吐量&#xff08;Throughput&#xff09; 1.2延迟&#xff08;Latency&#xff09; 1.3内存使用量 二.GC调优的方法 2.1监控工具 Jstat工具 VisualVm插件 Prometheus Grafana 2.2诊断原因 GC日志 GC Viewer GCeasy 2.3常见的GC模…

从零学算法78

78.给你一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该数组所有可能的子集&#xff08;幂集&#xff09;。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[],[1],[2],[1,2],[3…

分布式websocket即时通信(IM)系统保证消息可靠性【第八期】

b站上面本期视频版本&#xff0c;观看视频食用更佳&#xff01;点击即可跳转,找不到视频可以直接搜索我 目前叫 呆呆呆呆梦 目前已经写的文章有。并且有对应视频版本。 git项目地址 【IM即时通信系统&#xff08;企聊聊&#xff09;】点击可跳转 sprinboot单体项目升级成sprin…

#GPU|LLM|AIGC#集成显卡与独立显卡|显卡在深度学习中的选择与LLM GPU推荐

区别 核心区别&#xff1a;显存&#xff0c;也被称作帧缓存。独立显卡拥有独立显存&#xff0c;而集成显卡通常是没有的&#xff0c;需要占用部分主内存来达到缓存的目的 集成显卡&#xff1a; 是集成在主板上的&#xff0c;与主处理器共享系统内存。 一般会在很多轻便薄型的…

Linux 网络传输学习笔记

这篇是混合《Linux性能优化实战》以及 《Wireshark网络分析就这么简单》的一些关于Linux 网络的学习概念和知识点笔记 &#xff0c;主要记录网络传输流程以及对于TCP和UDP传输的一些影响因素 Linux 网络传输流程 借用一张倪朋飞先生的《Linux性能优化实战》课程中的图片 接收流…

第二证券:新手也能搞定!新股申购流程攻略

由于参加打新的获利概率较大&#xff0c;也就有许多投资者参加到新股申购中。那么&#xff0c;新股申购流程是怎样的&#xff1f;对此&#xff0c;本文将借助有关知识来展开讨论&#xff0c;为我们供给一个参阅思路。 投资者在参加网上打新时&#xff0c;应首要了解新股的申购日…