在 Kubernetes 中,Volume 是属于 Pod 对象的一部分。
所以,我们就需要修改这个 YAML 文件里的 template.spec 字段,如下所示:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.8
ports:
- containerPort: 80
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: nginx-vol
volumes:
- name: nginx-vol
emptyDir: {}
kubectl apply -f nginx-deployment.yaml
当然,Kubernetes 也提供了显式的 Volume 定义,它叫作 hostPath。比如下面的这个 YAML 文件:
...
volumes:
- name: nginx-vol
hostPath:
path: "/var/data"
将宿主机的/var/data 映射到/usr/share/nginx/htm
[root@dock02 share]# ls -ltr /var/data
total 0
drwxr-xr-x 2 root root 6 Dec 17 03:02 bbbbbbbb
root@nginx-deployment-66db4f9b59-4sw82:/usr/share/nginx/html# mkdir bbbbbbbb
root@nginx-deployment-66db4f9b59-4sw82:/usr/share/nginx/html# ls
bbbbbbbb
root@nginx-deployment-66db4f9b59-4sw82:/usr/share/nginx/html# pwd
/usr/share/nginx/html