【测试时间】

2022-07-28 17:40

【测试环境】

  • kubernetes v1.18.8

  • 1 master 6 worker

【过程概述】

  1. 添加 helm repo

    helm repo add radondb https://radondb.github.io/radondb-mysql-kubernetes/

  2. 在指定的ns下安装 Operator 2.2

    kubectl create ns radondb

    helm install radondb-demo radondb/mysql-operator -n radondb

  3. 在指定的ns下安装 MySQL 5.7 三节点集群

    安装配置下载地址:https://github.com/radondb/radondb-mysql-kubernetes/releases/latest/download/mysql_v1alpha1_mysqlcluster.yaml

    在配置中开启mysql-exporter

    metricsOpts:

    enabled: true

    执行安装

    kubectl apply -f mysql_v1alpha1_mysqlcluster.yaml -n radondb

  4. 创建用户并连接到集群,这里注意修改对应的ns

    kubectl apply -f mysqluser.yaml -n radondb

    示例:mysqluser.yaml

       
       apiVersion: v1
       kind: Secret
       metadata:
         name: sample-user-password   # 密钥名称。应用于 MysqlUser 中的 secretSelector.secretName。
       data:
         pwdForSample: UmFkb25EQkAxMjMKIA==  #密钥键,应用于 MysqlUser 中的 secretSelector.secretKey。示例密码为 base64 加密的 RadonDB@123
         # pwdForSample2:
         # pwdForSample3:
       ---
       apiVersion: mysql.radondb.com/v1alpha1
       kind: MysqlUser
       metadata:
       
         name: sample-user-cr  # 用户 CR 名称,建议使用一个用户 CR 管理一个用户。
       spec:
         user: sample_user  # 需要创建/更新的用户的名称。
         hosts:            # 支持访问的主机,可以填多个,% 代表所有主机。
              - "%"
         permissions:
           - database: "*"  # 数据库名称,* 代表所有数据库。
             tables:        # 表名称,* 代表所有表。
                - "*"
             privileges:     # 权限,参考 https://dev.mysql.com/doc/refman/5.7/en/grant.html。
                - SELECT
       
         userOwner:  # 指定被操作用户所在的集群。不支持修改。
           clusterName: sample
           nameSpace: radondb # radondb mysql 集群所在的命名空间。
       
         secretSelector:  # 指定用户的密钥和保存当前用户密码的键。
           secretName: sample-user-password  # 密钥名称。
           secretKey: pwdForSample  # 密钥键,一个密钥可以保存多个用户的密码,以键区分。

【结果截图】

【问题调研】

  • 使用过哪些 MySQL Operator?

  • 对 RadonDB MySQL Kuberentes 有哪些期待?
    期待支持离线安装。

  • 是否愿意关注并支持项目的改进?
    愿意