Kubernetes 的 MySQL 运算符  / 第 3 章 MySQL InnoDB 集群  /  3.2 使用 kubectl 部署

3.2 使用 kubectl 部署

要使用kubectl 创建一个 InnoDB 集群,首先要为一个新的 MySQL root 用户创建一个包含凭据的秘密,在本例中这个秘密名为“mypwds”:

$> kubectl create secret generic mypwds \
        --from-literal=rootUser=root \
        --from-literal=rootHost=% \
        --from-literal=rootPassword="sakila"

使用新创建的用户配置新的 MySQL InnoDB 集群。此示例的 InnoDBCluster 定义创建了三个 MySQL 服务器实例和一个 MySQL Router 实例:

apiVersion: mysql.oracle.com/v2
kind: InnoDBCluster
metadata:
  name: mycluster
spec:
  secretName: mypwds
  tlsUseSelfSigned: true
  instances: 3
  router:
    instances: 1

假设一个名为的文件mycluster.yaml 包含这个定义,安装这个简单的集群:

$> kubectl apply -f mycluster.yaml

innodbcluster(可选)通过观察默认命名空间 的类型来观察该过程 :

$> kubectl get innodbcluster --watch

输出看起来类似于:

NAME          STATUS    ONLINE   INSTANCES   ROUTERS   AGE
mycluster     PENDING   0        3           1         10s

直到达到在线状态:

NAME        STATUS   ONLINE   INSTANCES   ROUTERS   AGE
mycluster   ONLINE   3        3           1         2m6s

为了演示,此示例与 MySQL Shell 连接以显示主机名:

$> kubectl run --rm -it myshell --image=mysql/mysql-operator -- mysqlsh root@mycluster --sql
If you don't see a command prompt, try pressing enter.
******

MySQL mycluster SQL> SELECT @@hostname

+-------------+
| @@hostname  |
+-------------+
| mycluster-0 |
+-------------+

这显示成功连接到 MySQL InnoDB 集群中的 mycluster-0 pod。有关连接的其他信息,请参阅 第 4 章,连接到 MySQL InnoDB 集群