Volumes 声明了存储后,可以在所有容器中使用该存储。
apiVersion: v1
kind: Pod
metadata:
name: test-pd
spec:
containers:
- image: gcr.io/google_containers/test-webserver
name: test-container
volumeMounts:
- mountPath: /cache
name: cache-volume
volumes:
- name: cache-volume
emptyDir: {}
在使用存储时 spec.containers[*].volumeMounts.name
需要和 spec.volumes[*].name
保持一致。
subPath
有时,可以在一个 pod 中,将同一个卷共享,使其有多个用处。volumeMounts.subPath
特性可以用来指定卷中的一个子目录,而不是直接使用卷的根目录。
以下是使用单个共享卷的 LAMP 堆栈(Linux Apache Mysql PHP)的 pod 的示例。HTML 内容映射到其 html 文件夹,数据库将存储在 mysql 文件夹中:
apiVersion: v1
kind: Pod
metadata:
name: my-lamp-site
spec:
containers:
- name: mysql
image: mysql
volumeMounts:
- mountPath: /var/lib/mysql
name: site-data
subPath: mysql
- name: php
image: php
volumeMounts:
- mountPath: /var/www/html
name: site-data
subPath: html
volumes:
- name: site-data
persistentVolumeClaim:
claimName: my-lamp-site-data