本文主要介绍了在k8s中部署一个单实例mysql,不具备高可用性只适合于测试开发
更新于 2021-03-21
创建service对象
1 2 3 4 5 6 7 8 9 10 11
| apiVersion: v1 kind: Service metadata: name: mysql namespace: default spec: ports: - port: 3306 selector: app: mysql clusterIP: None
|
执行下面的命令创建:
1
| kubectl create -f mysql-service.yaml
|
创建存储卷
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| apiVersion: v1 kind: PersistentVolume metadata: name: mysql-pv-volume labels: type: local spec: storageClassName: manual capacity: storage: 20Gi accessModes: - ReadWriteOnce hostPath: path: "/mnt/data" --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pv-claim spec: storageClassName: manual accessModes: - ReadWriteOnce resources: requests: storage: 20Gi
|
使用下面的命令创建:
1
| kubectl create -f mysql-storage.yaml
|
创建deployment
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: selector: matchLabels: app: mysql strategy: type: Recreate template: metadata: labels: app: mysql spec: containers: - image: mysql:5.7 name: mysql env: - name: MYSQL_ROOT_PASSWORD value: 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
|
执行下面的命令创建:
1
| kubectl create -f mysql-deployment.yaml
|