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

7-k8s-helm管理

文章目录

    • 一、为什么需要Helm
    • 二、Helm相关概念介绍
    • 三、Helm安装
    • 四、Helm指令介绍
    • 五、Helm创建tomcat
    • 六、Helm创建tomcat其他方式
    • 七、Helm创建redis

一、为什么需要Helm

k8s部署:k8s平台部署的服务都是由资源文件描述组成,传统的k8s部署应用需要手工编排yaml文件。编写完,然后通过kubectl apply -f xxx.yaml进行部署。

缺点:对于一个复杂的系统,随着服务的增多,yaml配置文件越来越多,甚至如果要更新服务,需要不断维护资源文件,较为杂乱。

Helm优点:可以统一管理这些资源文件,而且提供了kubernetes上的软件部署,删除,升级, 回滚应用的强大功能

二、Helm相关概念介绍

  1. helm:命令行客户端工具,主要用于 Kubernetes 应用中的 chart 的创建、打包、发布和管理。

  2. Chart:目录或者压缩包,一系列用于描述 k8s 资源相关文件的集合,比方说我们部署 nginx,需要deployment的yaml,需要 service 的 yaml,这两个清单文件就是一个 helm 程序包,在 k8s 中把这些yaml 清单文件叫做 chart 图表。

  3. repository:存放 chart 图表的仓库,提供部署 k8s 应用程序需要的那些 yaml 清单文件

  4. Release:基于 Chart 的部署实体,一个 chart 被 Helm 运行后将会生成对应的一个 release;将在k8s 中创建出真实运行的资源对象

  5. helm主要工作

    1)从头开始创建新的chart

    2)将chart 打包成归档(tgz)文件

    3)与存储chart的仓库进行交互

    4)在现有的Kubernetes集群中安装和卸载chart

    5)管理与Helm一起安装的chart的发布周期

三、Helm安装

  1. 下载helm:https://repo.huaweicloud.com/helm/v3.5.4/helm-v3.5.4-linux-amd64.tar.gz

  2. 创建文件夹:mkdir /opt/helm

  3. 上传到/opt/helm

  4. 解压:tar -xvf helm-v3.5.4-linux-amd64.tar.gz

  5. 将解压的文件移到/usr/local/bin: mv /opt/helm/linux-amd64/helm /usr/local/bin

  6. 查看版本:helm version
    在这里插入图片描述

  7. 添加仓库

    ps:比较慢,耐心等待

    #官方仓库:
    helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
    #添加微软仓库
    helm repo add azure http://mirror.azure.cn/kubernetes/charts/
    #添加阿里云仓库
    helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
    #添加chat仓库
    helm repo add bitnami https://charts.bitnami.com/bitnami
    
  8. 查询仓库列表:helm repo list
    在这里插入图片描述

  9. 更新所有仓库:helm repo update

四、Helm指令介绍

  1. 添加仓库:helm repo add 自定义库名 仓库地址
  2. 查看仓库:helm repo list
  3. 删除仓库:helm repo remove 自定义库名
  4. 更新仓库:helm repo update
  5. 搜索chart:helm search repo 包名
  6. 拉取chart到本地:helm pull
  7. 本地创建新的chart:helm create
  8. 查看 chart 信息:helm show chart 包名
  9. 管理chart依赖:helm dependency
  10. 安装chart:helm install
  11. 列出所有release:helm list
  12. 删除release:helm delete 名字
  13. 检查chart配置是否有误:helm lint
  14. 打包本地 chart:helm package
  15. 回滚release到历史版本:helm rollback
  16. 卸载release:helm uninstall
  17. 升级release:helm upgrade

五、Helm创建tomcat

  1. 去仓库查找nginx:helm search repo tomcat

  2. 创建chart:helm create tomcat

  3. 进入:cd tomcat

  4. 目录文件详解

    ├── charts:依赖其他包的charts文件

    Chart.yaml :该chart的描述文件,包括ip地址,版本信息等

    ├── templates:存放k8s模板文件目录

    │ ├── deployment.yaml:创建k8s deployment资源的yaml 模板

    │ ├── _helpers.tpl :下划线开头的文件,可以被其他模板引用

    │ ├── hpa.yaml:配置服务资源CPU 内存

    │ ├── ingress.yaml :ingress 配合service域名访问的配置

    │ ├── NOTES.txt :说明文件,helm install之后展示给用户看的内容

    │ ├── serviceaccount.yaml

    │ ├── service.yaml :kubernetes Serivce yaml模板

    │ └── tests

    │ └── test-connection.yaml

    └── values.yaml #给模板文件使用的变量

    ps:deployment.yaml、service.yaml这些文件的内容,和我们平时创建pod和service时编写的yaml文件类似,不同之处在于很多配置的值并非固定,而是用变量代替了。而变量,则是在values.yaml种定义的

  5. 修改参数:vi value.yaml

    service:type: NodePortport: 80
    
  6. 安装对应仓库的chart:helm install tomcat azure/tomcat -f values.yaml

  7. 查看:helm list
    在这里插入图片描述

  8. 查看pod:kubectl get pod
    在这里插入图片描述

  9. 查看访问地址:kubectl get svc
    在这里插入图片描述

  10. 往tomcat里面写入首页数据
    1)进入pod:kubectl exec -it tomcat-bf4bc978c-97fhx bash
    2)创建文件夹: mkdir webapps/ROOT
    3)写入文件:echo “helm test1” > webapps/ROOT/index.jsp

  11. 访问:http://192.168.248.10:30511/
    在这里插入图片描述

六、Helm创建tomcat其他方式

  1. 可以使用–set来配置value.yaml的参数:helm install tomcat azure/tomcat --set service.type=NodePort

  2. 可以先下载包,后配置

    1)下载:helm pull azure/tomcat

    2)解压:tar -xvf tomcat-0.4.3.tgz

    3)修改配置:vi tomcat/values.yaml

    service:name: httptype: NodePortexternalPort: 80internalPort: 8080
    

    4)启动: helm install tomcat tomcat

    ps:后面那个tomcat是指tomcat文件夹

七、Helm创建redis

  1. 对外提供NodePort访问

    helm install redis bitnami/redis  --set global.storageClass=managed-nfs-storage  --set global.redis.password=ffcsict123    --set architecture=standalone  --set master.service.type=NodePort  --set master.service.nodePorts.redis=30919  --version 17.4.3
    

相关文章:

7-k8s-helm管理

文章目录 一、为什么需要Helm二、Helm相关概念介绍三、Helm安装四、Helm指令介绍五、Helm创建tomcat六、Helm创建tomcat其他方式七、Helm创建redis 一、为什么需要Helm k8s部署:k8s平台部署的服务都是由资源文件描述组成,传统的k8s部署应用需要手工编排…...

零基础怎么样才能学好 Python?Python 入门必看

Python 目前可以用一个字来描述那就是 “火”,问题来了,这么火的语言零基础小白到底该怎样学习 Python? 首先,从基础开始学习,切勿毛躁。 刚开始学习 Python 的时候,我们可能会有些毛躁总觉得这些知识太简…...

1.X3-Warming up

/* 此程序使用 Boost Spirit 库来解析用户提供的逗号分隔的数字列表。它演示了如何使用 Spirit 来定义解析 器和执行解析操作,并且在用户输入时反复执行解析操作。用户可以提供一系列逗号分隔的数字,程序会检查它们 是否符合指定的解析规则。如果解析成功…...

【23真题】两电一邮之一,难度骤降!24可能回升!

今天分享的是23年电子科技大学858的信号与系统试题及解析。23成电858真题和22年相比,难度骤降!今年我预测可能会有反弹。22年成电858真题,是我做过的22真题中数一数二的难度!23年一般,但是题目也很好,真的很…...

持续集成部署-k8s-资源调度:DaemonSet

持续集成部署-k8s-资源调度:DaemonSet 1. DaemonSet 简介2. 部署 Fluent 日志收集程序1. DaemonSet 简介 在 Kubernetes 中,DaemonSet 是一种用于在集群中运行一个 Pod 副本的控制器对象。它可以保证在每个节点上都运行一个 Pod 副本,并且在节点加入或退出集群时自动地更新…...

RabbitMQ内容

RabbitMQ是一款开源的消息中间件,支持多个消息协议,包括AMQP、STOMP、MQTT等,它的主要功能是将分散的应用程序连接在一起,以便它们可以相互通信,从而构建可靠的、高效的分布式系统。 RabbitMQ的基础概念包括&#xff…...

搭建一个vscode+uni+vue的小程序项目

我们使用 vue2 创建工程作为示例,uni-app中Vue2版的组件库和插件也比较多,稳定、问题少,可以先参考下官方文档:uni-app官网 既然是使用vue脚手架,那肯定要全局安装vue/cli,已安装的可以跳过。 注意:Vue2创…...

处理ElementUI组件默认样式多次重复问题

问题截图: 解决办法: 在postcss.config.js文件里添加配置项: module.exports {plugins: {autoprefixer: {},cssnano: {} //添加这行代码}, } 处理结果: github issues: https://github.com/ElemeFE/element/is…...

配置hpa后,target显示<unknown>/50%

背景: 有两个服务,server 负责主要后端请求,bill 负责计量计费请求。服务都是使用 helm 部署。测试提了一个缺陷,说全部服务没有配置hpa。 解决一 按照之前的代码结构添加了hpa后,发现: ➜ kubectl get…...

用java实现抖音授权登录

要使用Java实现抖音授权登录,您需要使用抖音开放平台提供的API。以下是一个简单的Java代码示例,演示如何使用OAuth 2.0授权登录流程: 要使用Java实现抖音授权登录,您需要按照以下步骤进行操作: 创建抖音开放平台账号…...

Atlassian午餐会直播回顾:如何在Jira中进行项目时间与成本管理?

工时管理是项目过程管理的一个重要手段,通过科学记录项目组成员在项目执行过程中的任务完成和时间消耗情况,可以帮助管理者精准评估成员工作效率,实时掌握项目进展,并有效管控项目成本。 想要成为时间管理大师吗?在近…...

屏幕时代的数字化信息管理:从传统到纯软件的转变

随着数字化时代的推进,屏幕已经成为了企业和机构向外界传递信息的主要媒介。除了传统的手机和电脑屏幕,线下空间如办公楼、商场、店铺、医院、展厅等也需要利用屏幕来展示和发布各类信息。 管理这些屏幕和发布信息并不是一件容易的事情,特别是…...

Stm32_标准库_14_串口蓝牙模块_解决手机与蓝牙模块数据传输的不完整性

由手机向蓝牙模块传输时间信息,Stm32获取信息并将已存在信息修改为传入信息 测试代码: #include "stm32f10x.h" // Device header #include "Delay.h" #include "OLED.h" #include "Serial.h"uint16_t num…...

基于深度学习的“语义通信编解码技术”框架分类

目录 基于神经网络的语义提取基于神经网络的语义信源编码基于神经网络的语义信源信道联合编码基于神经网络的语义编码与数字调制联合设计参考文献 基于神经网络的语义提取 在现有的信源编码前端加上一个语义提取神经网络[53] ,如图所示。语义提取神经网络的输入是原…...

信钰证券:股票抵押是好还是坏?

股票典当是指将持有的股票作为质押品向银行或其他金融机构融资的行为。股票典当有其优势和下风,下面咱们将从多个角度来剖析股票典当是否好仍是坏。 一、优势 1.占用资金少 相比较于其他融资办法,股票典当所需求占用的资金较少,只需将股票作…...

媒体基础:打开多模态大模型的新思路

编者按:2023年是微软亚洲研究院建院25周年。25年来,微软亚洲研究院探索并实践了一种独特且有效的企业研究院的新模式,并以此为基础产出了诸多对微软公司和全球社会都有积极影响的创新成果。一直以来,微软亚洲研究院致力于创造具有…...

dubbo-admin安装

一、dubbo-admin安装 1、环境准备 dubbo-admin 是一个前后端分离的项目。前端使用vue,后端使用springboot,安装 dubbo-admin 其实就是部署该项目。我们将dubbo-admin安装到开发环境上。要保证开发环境有jdk,maven,nodejs 安装no…...

Kaggle - LLM Science Exam(三):Wikipedia RAG

文章目录 一、赛事概述1.1 OpenBookQA Dataset1.2 比赛背景1.3 评估方法和代码要求1.4 比赛数据集1.5 优秀notebook 二、 [EDA, Data gathering] LLM-SE ~ Wiki STEM | 1k DS2.1 Data overview2.2 Data gathering 三、如何高效收集数据3.1 概述3.2 与训练数据关联的维基百科类别…...

【机器学习】PyTorch-MNIST-手写字识别

文章目录 前言完成效果一、下载数据集手动下载代码下载MNIST数据集: 二、 展示图片三、DataLoader数据加载器四、搭建神经网络五、 训练和测试第一次运行: 六、优化模型第二次优化后运行: 七、完整代码八、手写板实现输入识别功能 前言 注意…...

玩转代码| Vue 中 JSX 的特性,这一篇讲的明明白白

目录 什么时候使用JSX JSX在Vue2中的基本使用 配置 文本插值 条件与循环渲染 属性绑定 事件绑定 v-show与v-model 插槽 使用自定义组件 在method里返回JSX JSX是一种Javascript的语法扩展,即具备了Javascript的全部功能,同时又兼具html的语义…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看

文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...

Unity中的transform.up

2025年6月8日,周日下午 在Unity中,transform.up是Transform组件的一个属性,表示游戏对象在世界空间中的“上”方向(Y轴正方向),且会随对象旋转动态变化。以下是关键点解析: 基本定义 transfor…...

QT开发技术【ffmpeg + QAudioOutput】音乐播放器

一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…...

Vue 3 + WebSocket 实战:公司通知实时推送功能详解

📢 Vue 3 WebSocket 实战:公司通知实时推送功能详解 📌 收藏 点赞 关注,项目中要用到推送功能时就不怕找不到了! 实时通知是企业系统中常见的功能,比如:管理员发布通知后,所有用户…...