文章目录
一. apphub(失效)
1.1 添加repo
helm repo add apphub https://apphub.aliyuncs.com
helm repo update
helm search repo apphub/mysql
NAME CHART VERSION APP VERSION DESCRIPTION
apphub/mysql 6.8.0 8.0.19 Chart to create a Highly available MySQL cluster
1.2 创建StorageClass
mkdir -p /root/i/helm/mysql && cd /root/i/helm/mysql
[root@master mysql]# cat <<EOF> mysql-data-sc.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: mysql-data
provisioner: fuseim.pri/ifs
EOF
[root@master mysql]# kubectl create -f mysql-data-sc.yaml
1.3 自定义value配置文件
[root@master mysql]# cat <<EOF> my-values.yaml
root:
password: root
forcePassword: true
replication:
enabled: false
master:
# mysql 配置,主要是为了添加 sql_mode 参数,解决 GROUP BY clause;this is incompatible with sql_mode=only_full_group_by 报错,如果不需要,可以不用加这个配置
config: |-
[mysqld]
default_authentication_plugin=mysql_native_password
skip-name-resolve
explicit_defaults_for_timestamp
basedir=/opt/bitnami/mysql
plugin_dir=/opt/bitnami/mysql/plugin
port=3306
socket=/opt/bitnami/mysql/tmp/mysql.sock
datadir=/bitnami/mysql/data
tmpdir=/opt/bitnami/mysql/tmp
max_allowed_packet=16M
bind-address=0.0.0.0
pid-file=/opt/bitnami/mysql/tmp/mysqld.pid
log-error=/opt/bitnami/mysql/logs/mysqld.log
character-set-server=UTF8
collation-server=utf8_general_ci
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
[client]
port=3306
socket=/opt/bitnami/mysql/tmp/mysql.sock
default-character-set=UTF8
plugin_dir=/opt/bitnami/mysql/plugin
[manager]
port=3306
socket=/opt/bitnami/mysql/tmp/mysql.sock
pid-file=/opt/bitnami/mysql/tmp/mysqld.pid
persistence:
enabled: true
storageClass: "mysql-data"
size: 2Gi
service:
type: NodePort
port: 3306
nodePort: 30306
# 加这个是因为该版本chart模板 templates/master-svc.yaml 里面 (not (empty .Values.service.nodePortl)) 写错了,多写了个l
nodePortl: 30306
EOF
nodePort
端口好像没起作用,因为templates/master-svc.yaml
里面(not (empty .Values.service.nodePortl))
写错了,多写了个l
,所以添加配置nodePortl: 30306
可以让nodePort: 30306
生效
1.4 安装
helm install mysql apphub/mysql --version 6.8.0 -f my-values.yaml
卸载
helm uninstall mysql
# 如果想删除数据
kubectl delete pvc data-mysql-master-0
...
1.5 查看
[root@master mysql]# kubectl get pods | grep mysql
mysql-master-0 1/1 Running 0 24m
[root@master mysql]# kubectl get svc | grep mysql
mysql NodePort 10.43.199.224 <none> 3306:30306/TCP 43s
1.6 连接
使用公网ip
+ 30306
连接
二. bitnami
2.1 添加repo
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
2.2 搜索版本
[root@master helm]# helm search repo bitnami/mysql
NAME CHART VERSION APP VERSION DESCRIPTION
bitnami/mysql 9.4.1 8.0.31 MySQL is a fast, reliable, scalable, and easy t...
2.3 my-values.yaml
cat <<EOF> my-values.yaml
auth:
rootPassword: "wwwroot"
createDatabase: false
primary:
persistence:
enabled: true
storageClass: "nfs-storage"
size: 2Gi
service:
type: NodePort
nodePorts:
mysql: "30306"
EOF
2.4 安装
helm install mysql bitnami/mysql --version 9.4.1 -f my-values.yaml
查看
[root@master helm]# kubectl get pods | grep mysql
mysql-0 1/1 Running 0 6m55s
2.5 卸载
helm uninstall mysql