MySQL容器化部署全攻略
·
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

更多推荐

所有评论(0)