Helm在Kubernetes中的应用部署指南与案例解析

       在上一章节中,我们已经介绍了Helm的部署和基本使用方法。本章将通过实际案例,详细演示如何使用Helm在Kubernetes集群中部署应用。

一、Helm 核心价值解析

优势解决的问题类比传统方式
应用模板化重复编写 YAML 文件手动编写 20+ 资源清单文件
版本控制缺乏部署历史追踪kubectl apply 无版本记录
依赖管理多服务依赖关系复杂手动管理数据库/缓存等依赖
配置继承环境差异配置混乱复制修改多套 YAML 文件
一键部署部署流程碎片化

手动执行 kubectl 命令序列

二、案例-使用helm部署elasticsearch-exporter

1.搜索chart包

helm search repo elasticsearch-exporter

2.下载chart

helm pull aliyun/elasticsearch-exporter

3.解压

tar xf elasticsearch-exporter-0.1.2.tgz

4.修改模板内容

[root@master-1 ~]# cd elasticsearch-exporter/
[root@master-1 elasticsearch-exporter]# vim templates/deployment.yaml 
apiVersion: apps/v1
...

5.部署chart

[root@master-1 ~]# helm install liux-es-exporter elasticsearch-exporter
NAME: liux
LAST DEPLOYED: Tue Jul 29 15:48:08 2025
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
1. Get the application URL by running these commands:export POD_NAME=$(kubectl get pods --namespace default -l "app=elasticsearch-exporter" -o jsonpath="{.items[0].metadata.name}")echo "Visit http://127.0.0.1:9108/metrics to use your application"kubectl port-forward $POD_NAME 9108:9108 --namespace default[root@master-1 ~]# helm list
[root@master-1 ~]# kubectl get pods,svc

6.测试      

        如下图所示,已经开启了一个集群内部访问的ip+端口

       通过集群内部的ip+端口访问,如下图所示,已经采集到es的信息了。

三、案例-使用helm部署traefik

1.概述

       Traefik (发音为"traffic") 是一款现代化的反向代理负载均衡器,专为云原生环境(特别是容器和微服务架构)设计。

核心功能:

  • 反向代理:接收外部请求并转发到内部服务
  • 负载均衡:在多实例间分配请求流量
  • API网关:提供统一的API入口点

使用场景:

  • 作为Kubernetes Ingress Controller
  • 微服务架构的API网关
  • 混合云环境中的统一入口
  • 需要自动SSL证书管理的场景

       traefik特别适合云原生环境,它的自动发现能力和动态配置特性可以大大简化现代基础设施的流量管理。

2.部署

2.1 添加helm仓库
helm repo add my-traefik https://traefik.github.io/charts
2.2 更新仓库
helm repo update 
2.3 拉取chart
[root@master-1 traefik]# helm search repo traefik
NAME                   	CHART VERSION	APP VERSION	DESCRIPTION                                       
my-traefik/traefik     	36.3.0       	v3.4.3     	A Traefik based Kubernetes ingress controller     
my-traefik/traefik-crds	1.9.0        	           	A Traefik based Kubernetes ingress controller     
my-traefik/traefik-hub 	4.2.0        	v2.11.0    	Traefik Hub Ingress Controller                    
my-traefik/traefik-mesh	4.1.1        	v1.4.8     	Traefik Mesh - Simpler Service Mesh               
my-traefik/traefikee   	4.2.4        	v2.12.4    	Traefik Enterprise is a unified cloud-native ne...#在线拉取
[root@master-1 ~]# helm pull  my-traefik/traefik
#离线下载,找外网下载
https://traefik.github.io/charts/traefik/traefik-36.3.0.tgz#解压
[root@master-1 traefik]# tar xf traefik-36.3.0.tgz
2.4 按需修改values.yaml 

       我已将镜像地址修改为阿里云镜像仓库,镜像已成功推送至阿里仓库

[root@master-1 ~]# cd traefik
[root@master-1 traefik]# vim values.yaml 
image:  # @schema additionalProperties: false# -- Traefik image host registryregistry: registry.cn-hangzhou.aliyuncs.com/liuxing666# -- Traefik image repositoryrepository: traefik# -- defaults to appVersion. It's used for version checking, even prefixed with experimental- or latest-.# When a digest is required, `versionOverride` can be used to set the version.tag: 3.4.3  # @schema type:[string, null]# -- Traefik image pull policypullPolicy: IfNotPresent
...service:...# type: LoadBalancertype: NodePortportstraefik:expose:default: true   #改为true# -- The exposed port for this serviceexposedPort: 8080ingressRoute:dashboard:# -- Create an IngressRoute for the dashboardenabled: true   #改为true
2.5 安装traefik
[root@master-1 traefik]# cd ../
[root@master-1 ~]# helm install liux-traefik traefik
NAME: liux-traefik
LAST DEPLOYED: Tue Jul 29 16:48:56 2025
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
liux-traefik with registry.cn-hangzhou.aliyuncs.com/liuxing666/traefik:3.4.3 has been deployed successfully on default namespace !
[root@master-1 ~]# helm list
NAME            	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART                       	APP VERSION
liux-traefik    	default  	1       	2025-07-29 16:48:56.333821506 +0800 CST	deployed	traefik-36.3.0              	v3.4.3 

3 测试

[root@master-1 ~]# kubectl get svc,pods
NAME                                              TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                                     AGE
service/kubernetes                                ClusterIP   10.0.0.1     <none>        443/TCP                                     12d
service/liux-es-exporter-elasticsearch-exporter   ClusterIP   10.0.0.73    <none>        9108/TCP                                    112m
service/liux-traefik                              NodePort    10.0.0.2     <none>        8080:43183/TCP,80:31060/TCP,443:34135/TCP   3m34s
service/my-release-my-chart                       ClusterIP   10.0.0.152   <none>        80/TCP                                      4d
service/svc-yiyao                                 NodePort    10.0.0.178   <none>        80:30080/TCP                                5d1hNAME                                                           READY   STATUS    RESTARTS        AGE
pod/liux-es-exporter-elasticsearch-exporter-5d898c656f-cf5j6   1/1     Running   0               112m
pod/liux-traefik-6fb557b449-gr6gk                              1/1     Running   0               3m34s
pod/my-release-my-chart-57d68dc98d-rts84                       1/1     Running   1 (4h19m ago)   4d
pod/nfs-client-provisioner-56cc478696-x8r6c                    1/1     Running   6 (4h19m ago)   7d2h
[root@master-1 ~]# helm list
NAME            	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART                       	APP VERSION
liux-es-exporter	default  	1       	2025-07-29 15:49:22.030119271 +0800 CST	deployed	elasticsearch-exporter-0.1.2	1.0.2      
liux-traefik    	default  	1       	2025-07-29 17:37:51.504054285 +0800 CST	deployed	traefik-36.3.0              	v3.4.3  

       如图所示,Dashboard 服务已通过 NodePort 方式暴露,端口号为 43183。用户可通过任意节点 IP 地址加端口 43183 进行访问,访问格式为:`http://<节点IP>:43183。 如下图,一个完整的traefik已经部署好了。

 4.优化

[root@master-1 ~]# vim traefik/values.yaml 
...
# 资源限制
resources:requests:memory: "256Mi"cpu: "100m"limits:memory: "512Mi"cpu: "500m"

 四、故障排查命令

# 查看 Traefik 日志
kubectl logs  deploy/liux-traefik -f# 检查配置状态
kubectl exec  deploy/liux-traefik-- traefik debug# 查看路由表
kubectl exec  deploy/liux-traefik-- traefik dashboard --help# 诊断证书问题
kubectl describe certificaterequest

       本文通过两个实际案例演示了如何使用Helm在Kubernetes集群中部署应用。首先解析了Helm的核心价值,包括模板化、版本控制、依赖管理等优势。然后详细展示了部署elasticsearch-exporter和Traefik的完整流程:从搜索/拉取Chart包、修改配置参数,到安装部署和测试验证。特别针对Traefik部署进行了重点说明,包括修改镜像源、暴露Dashboard服务、资源限制优化等关键步骤,并提供了故障排查命令。案例证明Helm能有效简化Kubernetes应用部署,提升运维效率。

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

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

相关文章

如何最简单、通俗地理解线性回归算法? 线性回归模型在非线性数据上拟合效果不佳,如何在保持模型简单性的同时改进拟合能力?

线性回归作为统计学与机器学习领域中最基础且最重要的算法之一&#xff0c;其应用广泛且深远。它不仅是回归分析的入门方法&#xff0c;更是后续复杂模型构建的重要理论基础。理解线性回归算法的本质&#xff0c;既有助于提升数据分析的能力&#xff0c;也能为掌握更复杂的机器…

蓝桥杯----超声波

&#xff08;一&#xff09;、超声波1、原理&#xff08;图 一&#xff09;发送信号阶段&#xff1a;单片机通过翻转发送的引脚P1^0&#xff0c;发送8个40MHZ的方波&#xff0c;此时开始计时。等待接收信号&#xff1a;通过单片机的接收引脚P1^1检测&#xff0c;未接收到信号时…

Java学习-运算符

1.在代码中&#xff0c;如果有小数参与计算&#xff0c;结果有可能不精确。2.整数参与计算&#xff0c;结果只能是整数。3.数字进行运算时&#xff0c;数据类型不一样不能运算&#xff0c;需要转成一样的&#xff0c;才能运算。&#xff08;1&#xff09;隐式转换&#xff08;自…

一句话指令实现“2D转3D”、“图片提取线稿”

你是否曾为一张2D图片无法完美展示3D效果而遗憾&#xff1f;是否曾因需要将手绘草图转为清晰线稿而耗时费力&#xff1f;这些曾让设计师、电商卖家、内容创作者头疼的难题&#xff0c;如今只需一句话指令&#xff0c;即可迎刃而解。一、案例一&#xff1a;2D图片→3D模型痛点场…

层次聚类:无需“猜”K值,如何让数据自己画出“家族图谱”?

层次聚类&#xff1a;无需“猜”K值&#xff0c;如何让数据自己画出“家族图谱”&#xff1f;&#x1f44b; 大家好&#xff0c;我是小瑞瑞&#xff01;欢迎回到我的专栏&#xff01; 在上一期&#xff0c;我们学会了强大的K-Means算法&#xff0c;但它也给我们留下了一个“灵魂…

数据结构:链表(Linked List)

目录 结构推导 回到最原始的问题 —— 我们如何存数据&#xff1f; 第二步&#xff1a;我们来看看数组的限制 第三步&#xff1a;那我们该怎么做呢&#xff1f; 第四步&#xff1a;我们推导链表的数据结构 结构讲解 什么是链表&#xff1f; 什么是节点&#xff1f; …

[RK3566-Android11] U盘频繁快速插拔识别问题

问题描述 做老化测试时&#xff0c;在使用U盘频繁快速插拔的情况下&#xff0c;SDCard目录会突然被Kill掉&#xff0c;然后又重新挂载上&#xff0c;这会导致系统及APP的数据因为读写异常&#xff0c;从而界面卡死正常U盘插拔不应该导致内部存储卸载解决方案&#xff1a; SDK根…

【Golang】Go语言Map数据类型

Go语言Map数据类型 文章目录Go语言Map数据类型一、Map1.1.1、map定义1.1.2、map的基本使用1.1.3、判断某个键是否存在1.1.4、map的遍历1.1.5、使用delete()函数删除键值对1.1.6、按照指定顺序遍历map1.1.7、元素为map类型的切片1.1.8、值为切片类型的map一、Map map是一种无序…

Orange的运维学习日记--23.Linux计划任务详解

Orange的运维学习日记–23.Linux计划任务详解 文章目录Orange的运维学习日记--23.Linux计划任务详解一次性计划任务atd 服务at 命令基本语法交互式示例脚本文件示例timespec 格式示例查看与管理任务查看当前队列查看任务详细内容删除任务用户权限控制用户周期性计划任务查看任务…

Ubuntu 24.04.2 LTS 安装mysql8.0.36保姆级教程(从安装到远程连接)

目录 前言 一、系统准备 二、安装 MySQL 8.0.36 1. 查看可用版本 2.如果没有对应版本则需要手动下载mysql-apt-config&#xff08;有则跳过&#xff09; 2.1下图是mysql-apt-config各版本对应的mysql版本 2.2下载mysql apt repository 2.3安装 MySQL APT Repository 包 …

【LLM】讲清楚MLA原理

需要你对MHA、MQA、GQA有足够了解&#xff0c;相信本文能帮助你对MLA有新的认识。 本文内容都来自https://www.youtube.com/watch?v0VLAoVGf_74&#xff0c;如果阅读本文出现问题&#xff0c;建议直接去看一遍。 按照Deepseek设定一些参数值&#xff1a;输入token长度n10&…

谷歌采用 Ligero 构建其 ZK 技术栈

1. 引言 前序博客有&#xff1a; Ligero 和 Ligetron 中的 MPC 和 ZKLigetron&#xff1a;Nim Network开发的针对AI的zkVMLigetron&#xff1a;基于MPC-In-The-Head范式的zkVM简介 在隐私保护身份验证领域迈出重要一步&#xff0c;谷歌最近宣布 将零知识证明&#xff08;ZKP…

Flutter渲染引擎:Impeller和Skia

一、Impeller 渲染引擎的发布时间Impeller 是 Flutter 团队为解决 Skia 引擎在移动端&#xff08;尤其是 iOS 平台&#xff09;的性能问题而开发的全新渲染引擎&#xff0c;其发展历程如下&#xff1a;首次公开&#xff1a;2021 年 Google I/O 大会上首次提及&#xff0c;作为 …

网络编程-加密算法

目录 一.网络编程基础 1. 概述 2. IP地址 3. 域名 4. 网络模型 5. 常用协议 6. 小结 二.TCP编程 1. 什么是Socket&#xff1f; 2. 服务器端 3. 客户端 4. Socket流 5. 小结 三.UDP编程 1. 概述 2. 服务器端 3. 客户端 4. 小结 案例&#xff1a; 四.加密算法 …

【网络工程师软考版】网络安全

任何形式的网络服务都会导致安全方面的风险&#xff0c;问题是如何将风险降到最低程度&#xff0c;目前的网络安全措施有数据加密、数字签名、身份认证、防火墙、特征过滤等。所涉内容&#xff1a;1、网络安全基础2、加密技术与哈希算法3、数字签名4、数字证书5、VPN技术6、防火…

深入浅出设计模式——创建型模式之建造者模式 Builder

文章目录建造者模式简介建造者模式结构建造者模式代码实例定义产品类House定义建造者定义抽象建造者AbstractBuilder定义具体建造者定义指挥者客户端代码示例运行结果建造者模式总结代码仓库建一栋房子总共分几步&#xff1f;建造者模式告诉你答案&#xff01;“把大象装冰箱&a…

OpenVLA: 论文阅读 -- 开源视觉-语言-行动模型

更多内容&#xff1a;XiaoJ的知识星球 目录OpenVLA&#xff1a;开源视觉-语言-行动模型1. 介绍2. 相关工作1&#xff09;视觉条件语言模型&#xff08;Visually-Conditioned Language Models&#xff09;2&#xff09;通用型机器人策略&#xff08;Generalist Robot Policies&a…

JavaWeb(苍穹外卖)--学习笔记15(分页查询PageHelper)

前言 终于开始学习做项目了&#xff0c;本篇文章是学习B站黑马程序员苍穹外卖的学习笔记&#x1f4d1;。我的学习路线是Java基础语法-JavaWeb-做项目&#xff0c;管理端的功能学习完之后&#xff0c;就进入到了用户端微信小程序的开发&#xff0c;这篇文章来看看分页查询&#…

金融专题|某跨境支付机构:以榫卯企业云平台 VPC 功能保障业务主体安全

作者&#xff1a;SmartX 金融团队 金融机构在信息化建设时面临诸多数据合规要求&#xff0c;例如&#xff1a;不同业务区域之间互相隔离、数据库仅能由关联的应用服务器访问、仅有特定的服务器允许被外网访问等。对此&#xff0c;某跨境支付机构以 SmartX 榫卯企业云平台构建私…

Win10下python环境变量呼出微软应用商店

以下是三种彻底解决 Windows 10 的 CMD 中运行 python 命令弹出应用商店问题的方法​​方法一&#xff1a;调整环境变量优先级​-或者直接删除微软应用商店的环境变量%USERPROFILE%\AppData\Local\Microsoft\WindowsApp​​​操作步骤​​打开系统环境变量设置&#xff08;右键…