文章目錄
- 一、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
“人的一生會經歷很多痛苦,但回頭想想,都是傳奇”。