k8s helm install MySQL

helm

一、安装 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"

image-20240204133644375

五、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