MySQL 8 | on Kubernetes | with Manifest
kubectl apply -f ./mysql-single.yaml
MySQL 8 | on Kubernetes | with Helm Chart | by Bitnami
该笔记将记录:在 Kubernetes 中,如何部署单节点的 MySQL 服务,以及常见问题处理;
通过 HELM 部署
Run a Single-Instance Stateful Application | Kubernetes
Helm Charts to deploy MySQL in Kubernetes
charts/bitnami/mysql at master · bitnami/charts
helm repo add bitnami https://charts.bitnami.com/bitnami helm repo update bitnami helm search repo bitnami/mysql --versions | grep -F 8.0 helm pull bitnami/mysql helm show values ./mysql-9.2.0.tgz > mysql-9.2.0.helm-values.yaml vim mysql-9.2.0.helm-values.yaml ... 修改存储类:global.storageClass ... 修改运行模式:默认 standalone 模式,无需修改; ... 修改帐号密码:auth.rootPassword helm upgrade --install --namespace infra-database --create-namespace \ mysql ./mysql-9.2.0.tgz -f mysql-9.2.0.helm-values.yaml // ---------------------------------------------------------------------------- // 当部署成功后,输出如下信息: ... Services: echo Primary: mysql.infra-database.svc.cluster.local:3306 Execute the following to get the administrator credentials: echo Username: root MYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace infra-database mysql -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 mysql-client --rm --tty -i --restart='Never' --image docker.io/bitnami/mysql:8.0.29-debian-11-r9 --namespace infra-database --env MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD --command -- bash 2. To connect to primary service (read/write): mysql -h mysql.infra-database.svc.cluster.local -uroot -p"$MYSQL_ROOT_PASSWORD"
鉴于我们是环境迁移,所以未使用 storageClass 而是通过 primary.persistence.existingClaim 使用已有存储;
如果通过 storageClass 部署,helm uninstall 并不会删除 PVC,所以下次重新安装时仍旧使用之前的 PVC 数据;
数据目录:/bitnami/mysql/data
MySQL Client
我们在集群中运行该 Pod 实例,用于测试 MySQL 连接:
kubectl run mysql-client --rm --tty -i --restart='Never' \ --image docker.io/bitnami/mysql:8.0.29-debian-11-r9 \ --env MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD \ --command -- bash kubectl create deployment mysql-client --image=mysql:latest --replicas=1 -- sleep infinity