3.2 使用 kubectl 部署

若要使用 kubectl 建立 InnoDB Cluster,首先建立一個 secret,其中包含新的 MySQL root 使用者的憑證,此範例中 secret 的名稱為 'mypwds'

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

使用這個新建立的使用者來設定新的 MySQL InnoDB Cluster。此範例的 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

直到達到 ONLINE 狀態

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

為了示範,此範例會使用 MySQL Shell 連線以顯示主機名稱

$> kubectl run --rm -it myshell --image=container-registry.oracle.com/mysql/community-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 Cluster 中的 mycluster-0 Pod。如需有關連線的其他資訊,請參閱第 5 章,連線至 MySQL InnoDB Cluster