news 2026/5/28 9:03:40

【Kubernetes】使用Helm简化k8s部署、管理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Kubernetes】使用Helm简化k8s部署、管理

确定你安装版本的安全配置

安装和配置Helm。

安装Helm

macOS

brew install helm

Windows

choco install kubernetes-helm

Debian/Ubuntu

sudo apt-get install curl gpg apt-transport-https --yes

curl -fsSL https://packages.buildkite.com/helm-linux/helm-debian/gpgkey | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null

echo "deb [signed-by=/usr/share/keyrings/helm.gpg] https://packages.buildkite.com/helm-linux/helm-debian/any/ any main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list

sudo apt-get update

sudo apt-get install helm

基本概念

概念 描述 简单类比

Chart Helm 的应用包,包含模板和默认配置。 nginx.deb 安装包文件

Repository Chart 的存储仓库,用于分发和共享。 Ubuntu 的软件源(如 archive.ubuntu.com)

Release 在集群中运行的 Chart 的一个实例。 系统上正在运行的 nginx 进程

Values 用于覆盖 Chart 中模板默认参数的配置。 安装软件时传入的配置参数(如安装路径)

Helm的一般操作:

helm search: 搜索chart

helm pull: 下载chart到本地目录查看

helm install: 上传chart到Kubernetes

helm list: 列出已发布的chart

helm uninstall: 卸载一个版本

Bitnami

Bitnami 是一家被 VMware 收购的公司,长期专注于为流行开源软件提供打包好的、跨平台的安装程序。在容器化时代之前,他们就为数百个应用提供了虚拟机镜像、云镜像和原生安装包。

Bitnami是Helm中最常用的仓库之一,提供了许多常用的Kubernetes应用程序的Helm Charts。Helm作为Kubernetes的包管理器,允许用户从Chart repository快速查找和安装软件包。此外,用户可以通过Helm命令获取Bitnami Charts的详细信息。

Bitnami 提供了数百个经过验证的 Chart,涵盖:

数据库

helm install my-postgresql bitnami/postgresql

helm install my-redis bitnami/redis

helm install my-mongodb bitnami/mongodb

消息队列与中间件

helm install my-kafka bitnami/kafka

helm install my-rabbitmq bitnami/rabbitmq

helm install my-nginx bitnami/nginx

应用框架

helm install my-wordpress bitnami/wordpress

helm install my-joomla bitnami/joomla

helm install my-redmine bitnami/redmine

使用Helm部署一个MySQL

这里是没有使用Helm部署数据库MySQL的例子,需要手动管理

创建命名空间

创建本地存储PV和StorageClass

创建MySQL配置ConfigMap

创建MySQL密码Secret

创建MySQL StatefulSet

创建MySQL Service

部署脚本

下面就看看如何用Helm简化部署MySQL

1. 添加Bitnami仓库(若添加过,忽略)

helm repo add bitnami https://charts.bitnami.com/bitnami

helm repo update

2. 创建自定义values文件

创建 mysql-values.yaml 文件:

image:

registry: docker.io

repository: mysql

tag: 8.0.34

pullPolicy: Always

auth:

rootPassword: "root123!"

database: "myapp"

username: "appuser"

password: "app1234!"

replicationUser: "replicator" # 复制专用用户

replicationPassword: "replica-pass" # 复制用户密码

primary:

persistence:

enabled: true

size: 8Gi

storageClass: "local-path"

resources:

requests:

memory: "512Mi"

cpu: "250m"

limits:

memory: "1Gi"

cpu: "500m"

secondary:

replicaCount: 1

persistence:

enabled: true

size: 8Gi

storageClass: "local-path"

extraEnvVars:

- name: MYSQL_ROOT_PASSWORD

value: "root123!"

# 禁用所有辅助功能

volumePermissions:

enabled: false

architecture: "replication"

3. 部署MySQL

helm install my-mysql bitnami/mysql -f mysql-values.yaml -n mysql --create-namespace --version=9.14.0

验证

进入Pod

kubectl exec -ti my-mysql-primary-0 -n mysql -- /bin/sh

链接主节点/从节点

mysql -h my-mysql-primary.mysql.svc.cluster.local -uroot -p

k8s_helm

可以看到只需要3步,就可以部署一个主从复制架构的MySQL,比手动管理是方便太多,这是因为helm封装很多细节,具体查看某个Chart可以把它拉去到本地,查看

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 22:16:59

图书管理系统项目PPT文稿

图书管理系统项目PPT文稿封面页标题:Java图书管理系统 - 从0到1实现方案副标题:整合设计模式与Java基础的实战项目制作者:XXX日期:XXX目录页项目概述核心技术与设计模式系统架构与模块划分核心类设计业务功能实现项目测试与扩展总…

作者头像 李华
网站建设 2026/5/22 7:50:03

基于vue的培训机构课程报名教育管理系统_jzj3cqd0_springboot php python nodejs

目录具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作具体实现截图 本系统(程序源码数据库调试部署讲解)同时还支持java、ThinkPHP、Node.js、Spring B…

作者头像 李华
网站建设 2026/5/26 11:46:33

基于vue的校园快递代取系统的设计与实现_3gshfal8_springboot php python nodejs

目录具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作具体实现截图 本系统(程序源码数据库调试部署讲解)同时还支持java、ThinkPHP、Node.js、Spring B…

作者头像 李华
网站建设 2026/5/26 3:09:46

MLflow全球化部署终极指南:构建跨国机器学习协作平台

MLflow全球化部署终极指南:构建跨国机器学习协作平台 【免费下载链接】mlflow 一个关于机器学习工作流程的开源项目,适合对机器学习工作流程和平台开发感兴趣的人士学习和应用,内容包括数据集管理、模型训练、模型部署等多个方面。特点是功能…

作者头像 李华
网站建设 2026/5/26 11:54:16

基于vue的乡村旅游系统_家乡宣传系统nky846l2_springboot php python nodejs

目录具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作具体实现截图 本系统(程序源码数据库调试部署讲解)同时还支持java、ThinkPHP、Node.js、Spring B…

作者头像 李华
网站建设 2026/5/26 15:17:23

UnrealCLR高效入门指南:3大核心技巧快速上手游戏开发

想要在Unreal Engine中使用C#开发游戏?这份终极指南将为你揭秘UnrealCLR项目的快速上手方法!UnrealCLR是一个强大的开源项目,它让.NET开发者能够直接在虚幻引擎中运行托管代码,实现C#与C的无缝协作。无论你是游戏开发新手还是经验…

作者头像 李华