3.1 使用 Helm 部署

建立 MySQL InnoDB Cluster 的潛在數值在此可見

$> helm show values mysql-operator/mysql-innodbcluster

公開 Registry

最常見的 Helm 儲存庫是公開的 https://artifacthub.io/,這些範例皆使用此儲存庫。

此範例會在名為 credentials.yaml 的檔案中定義認證,設定 tls.useSelfSigned=true 以避免設定 SSL,使用 default 命名空間,並設定 mycluster 作為叢集的名稱

範例 credentials.yaml

credentials:
  root:
    user: root
    password: sakila
    host: "%"
$> helm install mycluster mysql-operator/mysql-innodbcluster \
   --set tls.useSelfSigned=true --values credentials.yaml

這個簡單安裝的 Manifest 看起來類似這樣

$> helm get manifest mycluster

---
# Source: mysql-innodbcluster/templates/service_account_cluster.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: mycluster-sa
  namespace: default
---
# Source: mysql-innodbcluster/templates/cluster_secret.yaml
apiVersion: v1
kind: Secret
metadata:
  name: mycluster-cluster-secret
  namespace: default
stringData:
  rootUser: "root"
  rootHost: "%"
  rootPassword: "sakila"
---
# Source: mysql-innodbcluster/templates/deployment_cluster.yaml
apiVersion: mysql.oracle.com/v2
kind: InnoDBCluster
metadata:
  name: mycluster
  namespace: default
spec:
  instances: 3
  tlsUseSelfSigned: true
  router:
    instances: 1
  secretName: mycluster-cluster-secret
  imagePullPolicy : IfNotPresent
  baseServerId: 1000
  version: 9.0.0
  serviceAccountName: mycluster-sa

或者使用命令列參數設定選項

$> helm install mycluster mysql-operator/mysql-innodbcluster \
    --set credentials.root.user='root' \
    --set credentials.root.password='sakila' \
    --set credentials.root.host='%' \
    --set serverInstances=3 \
    --set routerInstances=1 \
    --set tls.useSelfSigned=true

若要檢視現有叢集的使用者提供值

$> helm get values mycluster

USER-SUPPLIED VALUES:
credentials:
  root:
    host: '%'
    password: sakila
    user: root
routerInstances: 1
serverInstances: 3
tls:
  useSelfSigned: true

另請參閱 第 5 章,連線至 MySQL InnoDB Cluster