梨恐
2025-11-12 14:45:00
使用Helm简化Kubernetes部署、管理
Helm 是 Kubernetes 的包管理工具,能够简化应用的部署、管理和升级流程。以下是使用 Helm 的基本步骤和常见操作。
先决条件
想成功和正确地使用Helm,需要以下前置条件。
一个 Kubernetes 集群(参考macOS上优雅运行Docker容器)
确定你安装版本的安全配置
安装和配置Helm。
安装Helm
macOSWindowschoco install kubernetes-helm 复制代码 Debian/Ubuntusudo 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 复制代码 基本概念
概念描述简单类比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,涵盖:
数据库 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 复制代码 验证
kubectl exec -ti my-mysql-primary-0 -n mysql -- /bin/sh 复制代码 mysql -h my-mysql-primary.mysql.svc.cluster.local -uroot -p 复制代码
可以看到只需要3步,就可以部署一个主从复制架构的MySQL,比手动管理是方便太多,这是因为helm封装很多细节,具体查看某个Chart可以把它拉去到本地,查看helm pull bitnami/mysql --version=9.14.0 --untar 复制代码 引用
java-developer
例子: https://github.com/WilsonPan/java-developer/k8s/helm
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
相关推荐