k8s部署mysql
时间: 2023-07-09 15:23:55 浏览: 102
好的,下面是在 Kubernetes 中部署 MySQL 的一些基本步骤:
1. 创建一个 Kubernetes Secret,用于存储 MySQL 的 root 密码。可以使用以下命令创建:
```
kubectl create secret generic mysql-pass --from-literal=password=<password>
```
其中 `<password>` 为你要设置的 MySQL root 密码。
2. 创建一个 PersistentVolumeClaim,用于存储 MySQL 数据。可以使用以下 YAML 文件创建:
```
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pv-claim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
```
这里设置了一个 20GB 的存储空间,可以根据实际需求进行修改。
3. 创建一个 Deployment,用于部署 MySQL。可以使用以下 YAML 文件创建:
```
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql-deployment
spec:
selector:
matchLabels:
app: mysql
strategy:
type: Recreate
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:5.7
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-pass
key: password
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-pv-claim
```
这里使用了 MySQL 5.7 镜像,设置了 MySQL 的 root 密码,并将数据存储在前面创建的 PersistentVolumeClaim 中。
4. 创建一个 Service,用于访问 MySQL。可以使用以下 YAML 文件创建:
```
apiVersion: v1
kind: Service
metadata:
name: mysql-service
spec:
selector:
app: mysql
ports:
- name: mysql
port: 3306
targetPort: 3306
clusterIP: None
```
这里创建了一个 ClusterIP 类型的 Service,用于在 Kubernetes 集群内部访问 MySQL。
完成上述步骤后,即可在 Kubernetes 中部署 MySQL。
阅读全文