一. 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

参考 https://artifacthub.io/packages/helm/bitnami/mysql

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐