1.需要以下配置文件:(服务器需安装MySQL)服务器IP:10.100.1.30

ConfigMap:用于自定义 MySQL 配置
Deployment:用于运行 MySQL 容器,并挂载存储。
Service:用于将 MySQL 端口映射到外部。

2.直接 vim mysql-deploy.yaml  编辑文件,内容如下:

# 1. 配置中心 (ConfigMap) -
apiVersion: v1
kind: ConfigMap
metadata:
  name: mysql-config
  namespace: default
data:
  my.cnf: |
    [mysqld]
    bind-address = 0.0.0.0
    character-set-server = utf8mb4
    collation-server = utf8mb4_unicode_ci
    skip-name-resolve
---
# 2. 部署 MySQL (Deployment)
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql:latest  
        ports:
        - containerPort: 3306
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "0913"  # ⚠️ 请修改为你的强密码
        - name: MYSQL_DATABASE
          value: "testdb"      # 初始化默认数据库
        volumeMounts:
        - name: mysql-data
          mountPath: /var/lib/mysql  # 数据持久化目录
        - name: mysql-config
          mountPath: /etc/mysql/conf.d # 挂载配置文件
      volumes:
      - name: mysql-data
        hostPath:           # 简单方案:使用宿主机目录 (生产环境建议用 PVC)
          path: /data/mysql/data
          type: DirectoryOrCreate
      - name: mysql-config
        configMap:
          name: mysql-config
---
# 3. 暴露服务 (Service - NodePort)
apiVersion: v1
kind: Service
metadata:
  name: mysql-service
  namespace: default
spec:
  type: NodePort          # 关键:使用 NodePort 类型
  selector:
    app: mysql
  ports:
  - port: 3306            # 集群内访问端口
    targetPort: 3306      # 容器端口
    nodePort: 30306       # ⚠️ 外部访问端口 (范围 30000-32767)

3.应用yaml文件 

kubectl apply -f mysql-deploy.yaml

4.检查pod状态

kubectl get pods -l app=mysql

5.连接测试

mysql -h 10.100.1.30 -P 30306 -u root -p

密码:0913

更多推荐