码迷,mamicode.com
首页 > 其他好文 > 详细

Deployment 中尝试声明一个 Volum

时间:2020-03-12 23:40:33      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:net   也会   文件   mount   容器   aml   erp   tor   模板   

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: {}


可以看到,我们在 Deployment 的 Pod 模板部分添加了一个 volumes 字段,定义了这个 Pod 声明的所有 Volume。它的名字叫作 nginx-vol,类型是 emptyDir。那什么是 emptyDir 类型呢?它其实就等同于我们之前讲过的 Docker 的隐式 Volume 参数,即:不显式声明宿主机目录的 Volume。所以,Kubernetes 也会在宿主机上创建一个临时目录,这个目录将来就会被绑定挂载到容器所声明的 Volume 目录上。备注:不难看到,Kubernetes 的 emptyDir 类型,只是把 Kubernetes 创建的临时目录作为 Volume 的宿主机目录,交给了 Docker。这么做的原因,是 Kubernetes 不想依赖 Docker 自己创建的那个 _data 目录。而 Pod 中的容器,使用的是 volumeMounts 字段来声明自己要挂载哪个 Volume,并通过 mountPath 字段来定义容器内的 Volume 目录,比如:/usr/share/nginx/html。当然,Kubernetes 也提供了显式的 Volume 定义,它叫做 hostPath。比如下面的这个 YAML 文件:

...
volumes:
- name: nginx-vol
hostPath:
path: /var/data
这样,容器 Volume 挂载的宿主机目录,就变成了 /var/data。在上述修改完成后,我们还是使用 kubectl apply 指令,更新这个 Deployment:

$ kubectl apply -f nginx-deployment.yaml

Deployment 中尝试声明一个 Volum

标签:net   也会   文件   mount   容器   aml   erp   tor   模板   

原文地址:https://www.cnblogs.com/ainimore/p/12483476.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!