Kubernetes 一键部署 MySQL 集群脚本

Kubernetes 是一个用于自动部署、扩展和管理容器化应用程序的开源平台。在容器化应用程序中,数据库是一个非常重要的组件。为了方便在 Kubernetes 上部署 MySQL 集群,我们可以编写一键部署脚本来简化这个过程。

脚本示例

下面是一个简单的一键部署 MySQL 集群脚本示例:

#!/bin/bash

# 创建 Namespace
kubectl create namespace mysql

# 创建 StatefulSet
kubectl apply -f mysql-statefulset.yaml

# 创建 Service
kubectl apply -f mysql-service.yaml

其中,mysql-statefulset.yamlmysql-service.yaml 是用来定义 MySQL StatefulSet 和 Service 的 YAML 文件。这两个文件包含了 MySQL 集群的配置信息,如副本数、存储卷、端口等。

YAML 文件示例

mysql-statefulset.yaml

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mysql
spec:
  replicas: 3
  serviceName: mysql
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql:latest
        ports:
        - containerPort: 3306
        volumeMounts:
        - name: mysql-persistent-storage
          mountPath: /var/lib/mysql
  volumeClaimTemplates:
  - metadata:
      name: mysql-persistent-storage
    spec:
      accessModes: ["ReadWriteOnce"]
      resources:
        requests:
          storage: 1Gi

mysql-service.yaml

apiVersion: v1
kind: Service
metadata:
  name: mysql
spec:
  selector:
    app: mysql
  ports:
    - protocol: TCP
      port: 3306

状态图

stateDiagram
    [*] --> Installing
    Installing --> Running: MySQL集群正在运行
    Running --> [*]: MySQL集群正常工作

总结

通过上面的一键部署脚本和 YAML 文件示例,我们可以方便地在 Kubernetes 上部署 MySQL 集群。这种自动化部署的方式不仅减少了手动操作的复杂性,还提高了部署的效率和一致性。希望这篇文章能帮助你更好地理解如何在 Kubernetes 上部署 MySQL 集群。