Kubernetes存储卷Volume
Volume持久化存储概念
POD重启之后,原容器数据会丢失。为了让数据可以持久化存储,可以采用Volume挂载的方式避免数据丢失。
Deployment发布文件样例
官方样例:参考文档
mysql-svc.yml文件,修改如下:
注意volumeMounts 和 volumes的配置。
apiVersion: v1
kind: Pod
metadata:
name: mysql
labels:
app: mysql
spec:
containers:
- name: mysql
#mysql官方5.7镜像
image: mysql:5.7
env:
#支持启动的时候配置数据库
- name: MYSQL_ROOT_PASSWORD
#root用户密码,实际生产环境要配置在ConfigMap/Secret中。
value: petclinic
- name: MYSQL_DATABASE
#创建数据库
value: petclinic
volumeMounts:
- name: mysql-persistent-volume
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-volume
hostPath:
# hostPath本机目录 /tmp/data01
path: /tmp/data01
# DirectoryOrCreate表示如果没有就创建
type: DirectoryOrCreate
---
apiVersion: v1
kind: Service
metadata:
name: mysql
spec:
selector:
app: mysql
ports:
- name: tcp
port: 3306
targetPort: 3306
type: ClusterIP
发布命令参考本专栏其他文章。例:configmap文档.