k8s 安装mysql
时间: 2025-05-27 08:27:37 浏览: 31
### 在 Kubernetes (k8s) 中安装和配置 MySQL
要在 Kubernetes 集群中成功安装和配置 MySQL 数据库,可以按照以下方法操作:
#### 使用 Helm 安装 MySQL
Helm 是 Kubernetes 的包管理工具,能够简化应用程序的部署过程。以下是通过 Helm 安装 MySQL 的具体方式。
1. 添加官方 Helm 仓库并更新:
```bash
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
```
2. 创建一个新的命名空间用于隔离 MySQL 资源:
```bash
kubectl create namespace mysql-ns
```
3. 使用 Helm Chart 部署 MySQL 实例到指定命名空间:
```bash
helm install my-mysql bitnami/mysql --namespace=mysql-ns
```
此命令会自动完成 MySQL 的安装以及基本配置[^2]。
4. 查看 Pod 和 Service 是否正常启动:
```bash
kubectl get pods,services -n mysql-ns
```
#### 手动编写 YAML 文件部署 MySQL
如果不想依赖 Helm,也可以手动定义 Deployment 和 Service 来实现 MySQL 的部署。
1. 编写 `mysql-deployment.yaml` 文件如下所示:
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql
labels:
app: mysql
spec:
replicas: 1
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:5.7
env:
valueFrom:
secretKeyRef:
name: mysql-secret
key: password
ports:
- containerPort: 3306
volumeMounts:
- mountPath: /var/lib/mysql
name: data-volume
volumes:
- name: data-volume
persistentVolumeClaim:
claimName: mysql-pv-claim
---
apiVersion: v1
kind: Service
metadata:
name: mysql-service
spec:
type: ClusterIP
ports:
- port: 3306
targetPort: 3306
selector:
app: mysql
```
2. 应用该文件以创建资源:
```bash
kubectl apply -f mysql-deployment.yaml
```
3. 如果需要持久化存储,则需额外准备 PersistentVolume 和 PersistentVolumeClaim(PVC)。可以通过以下命令验证 PVC 绑定情况:
```bash
kubectl get pvc -l app=mysql
```
4. 访问 MySQL 数据库实例:
进入对应的 Pod 并连接至数据库服务器:
```bash
kubectl exec -it $(kubectl get pod -l app=mysql -o jsonpath="{.items[0].metadata.name}") -- bash
mysql -u root -p
```
#### 备份与恢复策略
为了保障数据安全,在生产环境中建议定期备份 MySQL 数据。一种简单的方式是利用 CronJob 自动执行备份脚本并将结果保存到远程存储位置[^1]。
---
### 总结
无论是采用 Helm 工具还是手动生成资源配置文件的方法都可以有效地在 Kubernetes 环境下搭建起功能完备的 MySQL 数据库服务[^5]。每种方案各有优劣,请依据实际需求选择适合自己的路径实施部署工作。
阅读全文
相关推荐



















