文章目录
- 一、Helm 常用命令速查表
- 1.1. 仓库管理
- 1.2. Chart 搜索
- 1.3. 应用部署
- 1.4. 应用管理
- 二、Bitnami 常用中间件部署示例
- 三、常用自定义参数(values.yaml 配置项)
- 四、安装后的访问方式
- 五、一键安装脚本 install-middleware.sh
- 5.1. 完整脚本
- 5.2. 使用方式
- 5.3. 部署完成后获取连接信息
下面整理了一份 Helm 常用命令 + Bitnami 中间件部署速查表,方便在 Rancher/Kubernetes 环境里快速安装 MySQL、Redis 等常用服务。
一、Helm 常用命令速查表
首先,确保安装了Helm:这里我已安装好 Helm(v3.18.4 版本)
helm versionversion.BuildInfo{Version:"v3.18.4", GitCommit:"d80839cf37d860c8aa9a0503fe463278f26cd5e2", GitTreeState:"clean", GoVersion:"go1.24.4"}
1.1. 仓库管理
# 添加仓库(例如 Bitnami)
helm repo add bitnami https://charts.bitnami.com/bitnami# 查看仓库列表
helm repo list# 更新仓库缓存
helm repo update# 删除仓库
helm repo remove bitnami
1.2. Chart 搜索
# 搜索 MySQL
helm search repo mysql# 搜索 Redis
helm search repo redis
1.3. 应用部署
# 安装 MySQL
helm install my-mysql bitnami/mysql --namespace database --create-namespace# 安装 Redis
helm install my-redis bitnami/redis --namespace database --create-namespace
# 自定义配置安装(指定 values.yaml)
helm install my-mysql bitnami/mysql -f values.yaml
1.4. 应用管理
# 查看已部署的应用
helm list -n database# 升级应用
helm upgrade my-mysql bitnami/mysql -f values.yaml# 回滚到上一个版本
helm rollback my-mysql 1
# 卸载应用
helm uninstall my-mysql -n database
二、Bitnami 常用中间件部署示例
中间件 | 部署命令(默认配置) | 访问方式 | 重要参数 |
---|---|---|---|
MySQL | helm install my-mysql bitnami/mysql --set auth.rootPassword=123456 | ClusterIP | auth.rootPassword 设 root 密码 |
Redis | helm install my-redis bitnami/redis --set auth.password=123456 | ClusterIP | auth.password 设置密码 |
PostgreSQL | helm install my-postgres bitnami/postgresql --set auth.postgresPassword=123456 | ClusterIP | auth.postgresPassword 设置密码 |
MongoDB | helm install my-mongo bitnami/mongodb --set auth.rootPassword=123456 | ClusterIP | auth.rootPassword 设置密码 |
Nginx | helm install my-nginx bitnami/nginx | ClusterIP / NodePort | service.type=NodePort 对外暴露 |
RabbitMQ | helm install my-rabbit bitnami/rabbitmq --set auth.password=123456 | ClusterIP | auth.username & auth.password |
Elasticsearch | helm install my-es bitnami/elasticsearch | ClusterIP | 可加 volumePermissions.enabled=true |
三、常用自定义参数(values.yaml 配置项)
auth:rootPassword: "123456"username: "user1"password: "pass1"database: "mydb"primary:persistence:enabled: truesize: 10Gireplica:replicaCount: 2
安装时:
helm install my-mysql bitnami/mysql -f values.yaml
四、安装后的访问方式
# 查看密码
kubectl get secret --namespace database my-mysql -o jsonpath="{.data.mysql-root-password}" | base64 -d# 进入 Pod
kubectl exec -it my-mysql-0 -n database -- bash# 使用 MySQL 客户端连接
mysql -h my-mysql.database.svc.cluster.local -u root -p
五、一键安装脚本 install-middleware.sh
一键安装 MySQL、Redis、PostgreSQL 等常用中间件 的 Helm 自动化脚本,支持指定版本、命名空间和 Bitnami Chart 仓库自动添加。
确保你已经在 Rancher 的目标集群中安装了 Helm,并且有集群的 kubectl 访问权限。
5.1. 完整脚本
#!/bin/bash
# ============================================
# Helm 一键安装 MySQL、Redis、PostgreSQL 等常用中间件
# 作者: tigerhhzz
# 日期: 2025-08-14
# ============================================set -e# ======= 1. 配置部分 =======
NAMESPACE="middleware"
MYSQL_VERSION="9.4.5"
REDIS_VERSION="18.8.2"
POSTGRES_VERSION="15.2.2"# ======= 2. 检查 Helm =======
if ! command -v helm &>/dev/null; thenecho "[ERROR] Helm 未安装,请先安装 Helm"exit 1
fi# ======= 3. 创建命名空间 =======
kubectl get ns $NAMESPACE >/dev/null 2>&1 || kubectl create ns $NAMESPACE# ======= 4. 添加 Bitnami 仓库 =======
if ! helm repo list | grep -q "bitnami"; thenecho "[INFO] 添加 Bitnami Helm 仓库..."helm repo add bitnami https://charts.bitnami.com/bitnami
fi
helm repo update# ======= 5. 安装 MySQL =======
echo "[INFO] 安装 MySQL..."
helm upgrade --install mysql bitnami/mysql \--namespace $NAMESPACE \--version $MYSQL_VERSION \--set auth.rootPassword=root123 \--set auth.database=appdb \--set auth.username=appuser \--set auth.password=app123# ======= 6. 安装 Redis =======
echo "[INFO] 安装 Redis..."
helm upgrade --install redis bitnami/redis \--namespace $NAMESPACE \--version $REDIS_VERSION \--set auth.password=redis123# ======= 7. 安装 PostgreSQL =======
echo "[INFO] 安装 PostgreSQL..."
helm upgrade --install postgresql bitnami/postgresql \--namespace $NAMESPACE \--version $POSTGRES_VERSION \--set auth.postgresPassword=pg123 \--set auth.database=pgdb# ======= 8. 显示安装结果 =======
echo "[INFO] 所有中间件安装完成,当前运行情况:"
kubectl get pods -n $NAMESPACE
5.2. 使用方式
chmod +x install-middleware.sh
./install-middleware.sh
5.3. 部署完成后获取连接信息
获取 MySQL 密码
kubectl get secret --namespace middleware mysql -o jsonpath="{.data.mysql-root-password}" | base64 --decode
获取 Redis 密码
kubectl get secret --namespace middleware redis -o jsonpath="{.data.redis-password}" | base64 --decode
获取 PostgreSQL 密码
kubectl get secret --namespace middleware postgresql -o jsonpath="{.data.postgres-password}" | base64 --decode
“人的一生会经历很多痛苦,但回头想想,都是传奇”。