找回密码
 立即注册
首页 业界区 业界 【Kubernetes】使用Helm简化k8s部署、管理

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

梨恐 2025-11-12 14:45:00
使用Helm简化Kubernetes部署、管理

Helm 是 Kubernetes 的包管理工具,能够简化应用的部署、管理和升级流程。以下是使用 Helm 的基本步骤和常见操作。
先决条件

想成功和正确地使用Helm,需要以下前置条件。

  • 一个 Kubernetes 集群(参考macOS上优雅运行Docker容器)
  • 确定你安装版本的安全配置
  • 安装和配置Helm。
安装Helm

macOS
  1. brew install helm
复制代码
Windows
  1. choco install kubernetes-helm
复制代码
Debian/Ubuntu
  1. sudo apt-get install curl gpg apt-transport-https --yes
  2. curl -fsSL https://packages.buildkite.com/helm-linux/helm-debian/gpgkey | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
  3. 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
  4. sudo apt-get update
  5. sudo apt-get install helm
复制代码
基本概念

概念描述简单类比ChartHelm 的应用包,包含模板和默认配置。nginx.deb 安装包文件RepositoryChart 的存储仓库,用于分发和共享。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,涵盖:
数据库
  1. helm install my-postgresql bitnami/postgresql
  2. helm install my-redis bitnami/redis
  3. helm install my-mongodb bitnami/mongodb
复制代码
消息队列与中间件
  1. helm install my-kafka bitnami/kafka
  2. helm install my-rabbitmq bitnami/rabbitmq
  3. helm install my-nginx bitnami/nginx
复制代码
应用框架
  1. helm install my-wordpress bitnami/wordpress
  2. helm install my-joomla bitnami/joomla
  3. helm install my-redmine bitnami/redmine
复制代码
使用Helm部署一个MySQL

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

  • 创建命名空间
  • 创建本地存储PV和StorageClass
  • 创建MySQL配置ConfigMap
  • 创建MySQL密码Secret
  • 创建MySQL StatefulSet
  • 创建MySQL Service
  • 部署脚本
下面就看看如何用Helm简化部署MySQL
1. 添加Bitnami仓库(若添加过,忽略)
  1. helm repo add bitnami https://charts.bitnami.com/bitnami
  2. helm repo update
复制代码
2. 创建自定义values文件

创建 mysql-values.yaml 文件:
  1. image:
  2.   registry: docker.io
  3.   repository: mysql
  4.   tag: 8.0.34
  5.   pullPolicy: Always
  6. auth:
  7.   rootPassword: "root123!"
  8.   database: "myapp"
  9.   username: "appuser"
  10.   password: "app1234!"
  11.   replicationUser: "replicator"       # 复制专用用户
  12.   replicationPassword: "replica-pass" # 复制用户密码
  13. primary:
  14.   persistence:
  15.     enabled: true
  16.     size: 8Gi
  17.     storageClass: "local-path"
  18.   
  19.   resources:
  20.     requests:
  21.       memory: "512Mi"
  22.       cpu: "250m"
  23.     limits:
  24.       memory: "1Gi"
  25.       cpu: "500m"
  26.   
  27. secondary:
  28.   replicaCount: 1
  29.   persistence:
  30.     enabled: true
  31.     size: 8Gi
  32.     storageClass: "local-path"
  33.   extraEnvVars:
  34.     - name: MYSQL_ROOT_PASSWORD
  35.       value: "root123!"
  36. # 禁用所有辅助功能
  37. volumePermissions:
  38.   enabled: false
  39. architecture: "replication"
复制代码
3. 部署MySQL
  1. helm install my-mysql bitnami/mysql -f mysql-values.yaml -n mysql --create-namespace --version=9.14.0
复制代码
验证


  • 进入Pod
  1. kubectl exec -ti my-mysql-primary-0 -n mysql -- /bin/sh
复制代码

  • 链接主节点/从节点
  1. mysql -h my-mysql-primary.mysql.svc.cluster.local -uroot -p
复制代码
1.png

可以看到只需要3步,就可以部署一个主从复制架构的MySQL,比手动管理是方便太多,这是因为helm封装很多细节,具体查看某个Chart可以把它拉去到本地,查看
  1. helm pull bitnami/mysql --version=9.14.0 --untar
复制代码
引用

java-developer
例子: https://github.com/WilsonPan/java-developer/k8s/helm

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册