Kubernetes に MySQL クラスタをデプロイして永続ストレージを作成

KubernetesでMySQLクラスターをデプロイし、永続ストレージを永続化するには、StatefulSetとPersistentVolumeClaim(PVC)を使用できます。 1. 永続ストレージの種類と属性を定義するストレージクラス(StorageClass)を作成します。たとえば、`mysql-storage`という名前のストレージクラスを作成するには、次のコマンドを使用します。 “`apiVersion: storage.k8s.io/v1 kind: StorageClass metadata:  name: mysql-storage provisioner: kubernetes.io/gce-pd parameters:  type: pd-standard “` 2. 永続ストレージをリクエストするPersistentVolumeClaim(PVC)を作成します。たとえば、`mysql-pvc`という名前のPVCを作成するには、次のコマンドを使用します。 “`apiVersion: v1 kind: PersistentVolumeClaim metadata:  name: mysql-pvc spec:  storageClassName: mysql-storage  accessModes:    – ReadWriteOnce  resources:    requests:      storage: 10Gi “` 3. MySQLの構成ファイルを格納するConfigMapを作成します。たとえば、`mysql-config`という名前のConfigMapを作成し、MySQLの構成ファイルを`my.cnf`に格納するには、次のコマンドを使用します。 “`apiVersion: v1 kind: ConfigMap metadata:  name: mysql-config data:  my.cnf: |    [mysqld]    server-id=1    log-bin=mysql-bin    binlog-format=row “` 4. MySQLクラスターのPodを作成して管理するStatefulSetを作成します。たとえば、`mysql-cluster`という名前のStatefulSetを作成するには、次のコマンドを使用します。 “`apiVersion: apps/v1 kind: StatefulSet metadata:  name: mysql-clusterspec:  replicas: 3  selector:    matchLabels:      app: mysql  serviceName: mysql  template:    metadata:      labels:        app: mysql    spec:      containers:        – name: mysql          image: mysql:5.7          env:            – name: MYSQL_ROOT_PASSWORD              value: mysecretpassword          ports:            – containerPort: 3306          volumeMounts:            – name: mysql-data              mountPath: /var/lib/mysql            – name: mysql-config              mountPath: /etc/mysql/conf.d      volumes:        – name: mysql-data          persistentVolumeClaim:            claimName: mysql-pvc        – name: mysql-config          configMap:            name: mysql-config “` この設定では、MySQLのデータディレクトリ`/var/lib/mysql`が`mysql-data`という名前のPVCにマウントされ、MySQLの構成ファイル`my.cnf`は`mysql-config`という名前のConfigMapにマウントされます。 5. kubectl applyコマンドを使用して、StatefulSet、PVC、およびConfigMapをデプロイします。 “`kubectl apply -f mysql-cluster.yaml kubectl apply -f mysql-pvc.yaml kubectl apply -f mysql-config.yaml “` 6. StatefulSetのPodが実行されて初期化が完了するのを待ちます。次のコマンドを使用してPodの実行ステータスを確認できます。 “`kubectl get pods “` 7. MySQLクラスターのPodの1つに接続し、必要な設定と操作を行います。次のコマンドを使用して、MySQLクラスターの最初のPodに接続できます。 “`kubectl exec -it mysql-cluster-0 — mysql -uroot -pmysecretpassword “` 8. 上記の手順が完了すると、KubernetesでMySQLクラスターがデプロイされ、永続ストレージを使用してデータが格納されます。

bannerAds