一、安装 helm
wget https://get.helm.sh/helm-v3.14.0-linux-arm64.tar.gz
tar xf helm-v3.14.0-linux-arm64.tar.gz
cp linux-amd64/helm /usr/local/bin
二、添加 仓库
helm repo add bitnami https://charts.bitnami.com/bitnami
三、安装 MySQL
3.1 方式一
helm pull bitnami/mysql # 下载 chat
tar xf mysql-9.19.1.tgz
# 修改 mysql/values.yaml
# storageClass: "" 改为 storageClass: "nfs-client" # 指定 storageClass
# rootPassword: "" 改为 rootPassword: "root" # 配置 root 密码
helm install mysql8 ./mysql
# 等同于这个 helm install -f mysql/values.yaml mysql8 ./mysql
3.2 方式二
helm install --set global.storageClass="nfs-client" --set auth.rootPassword="root" mysql8 bitnami/mysql
3.3 安装后显示内容
#helm install mysql8 ./mysql
NAME: mysql8
LAST DEPLOYED: Sun Feb 4 13:34:26 2024
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: mysql
CHART VERSION: 9.19.1
APP VERSION: 8.0.36
** Please be patient while the chart is being deployed **
Tip:
Watch the deployment status using the command: kubectl get pods -w --namespace default
Services:
echo Primary: mysql8.default.svc.cluster.local:3306
Execute the following to get the administrator credentials:
echo Username: root
MYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace default mysql8 -o jsonpath="{.data.mysql-root-password}" | base64 -d)
To connect to your database:
1. Run a pod that you can use as a client:
kubectl run mysql8-client --rm --tty -i --restart='Never' --image docker.io/bitnami/mysql:8.0.36-debian-11-r4 --namespace default --env MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD --command -- bash
2. To connect to primary service (read/write):
mysql -h mysql8.default.svc.cluster.local -uroot -p"$MYSQL_ROOT_PASSWORD"
注:这些内容也可以通过这个命令查看 helm status mysql8
四、验证
MYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace default mysql8 -o jsonpath="{.data.mysql-root-password}" | base64 -d)
kubectl run mysql8-client --rm --tty -i --restart='Never' --image docker.io/bitnami/mysql:8.0.36-debian-11-r4 --namespace default --env MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD --command -- bash
mysql -h mysql8.default.svc.cluster.local -uroot -p"$MYSQL_ROOT_PASSWORD"
五、helm 命令
# 查看 helm 的 release
#helm ls
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
mysql8 default 1 2024-02-04 13:34:26.10327518 +0800 CST deployed mysql-9.19.1 8.0.36
# 卸载
#helm uninstall mysql8