我看到了以下两种类型的volumeMounts
volumeMounts:
- mountPath: <path>
name: someName和
volumeMounts:
- name: someNameHere
mountPath: <somePathHere>这两者有什么区别?我们何时将内容放入卷中,何时从卷中获取内容?
例如,在链接中,initContainer更新卷,但是nginx容器从该卷获取数据。类似地,侧字符读取卷。
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
selector:
matchLabels:
app: myapp-dep
template:
metadata:
labels:
app: myapp-dep
spec:
initContainers:
- name: ssl-cert-creation
image: deekshithsn/openssl
command: ["/bin/sh"]
args: ["-c","mkdir -p /etc/nginx/ssl;openssl req -newkey rsa:2048 -nodes -keyout /etc/nginx/ssl/nginx.key -x509 -days 365 -out /etc/nginx/ssl/nginx.crt -subj '/C=GB/ST=London/L=London/O=Global Security/OU=IT Department/CN=example.com'"]
volumeMounts:
- name: ssl-cert
mountPath: /etc/nginx/ssl
containers:
- name: myapp-dep
image: deekshithsn/nginxhttps
command: ["/home/auto-reload-nginx.sh"]
ports:
- containerPort: 443
- containerPort: 80
livenessProbe:
httpGet:
path: /index.html
port: 80
initialDelaySeconds: 30
timeoutSeconds: 1
volumeMounts:
- mountPath: /etc/nginx/ssl
name: ssl-cert
- mountPath: /etc/nginx/conf.d
name: nginx-files
- mountPath: /var/log/nginx
name: logs
- name: sidecar-logs
image: xueshanf/awscli
command: ["/bin/sh"]
args: ["-c","cp /root/scripts/syncs3.sh /root/syncs3.sh;chmod 777 /root/syncs3.sh;while true; do sh /root/syncs3.sh; sleep 10;done"]
volumeMounts:
- name: logs
mountPath: /var/log/nginx
- name: aws-credentials
mountPath: /root/.aws/config
subPath: config
- name: aws-credentials
mountPath: /root/scripts/syncs3.sh
subPath: syncs3.sh
volumes:
- name: ssl-cert
emptyDir: {}
- name: logs
emptyDir: {}
- name: aws-credentials
configMap:
name: "aws-config"
- name: nginx-files
configMap:
name: "nginx-config"
replicas: 2发布于 2021-01-29 18:29:28
它们在语义上是一样的。VolumeMounts是一个具有mountPath和name两个键的哈希映射。库伯内特斯对他们的解释没有什么不同。
如果您查看的是json表示,而不是yaml,它可能更清楚(键的顺序并不重要)
{
"volumeMounts": [
{
"mountPath": "<path>",
"name": "name"
}
]
}{
"volumeMounts": [
{
"name": "someNameHere",
"mountPath": "<somePathHere>"
}
]
}卷挂载指定要安装在容器内指定的文件系统位置上的卷。是否读取或写入该卷完全取决于容器中运行的应用程序。是否可以读写取决于文件权限,就像在任何挂载上一样。
更改是否传播到共享相同挂载的其他容器取决于安装传播设置。默认值是None,在这种情况下,它们不会。
发布于 2021-01-29 18:56:04
volumeMounts:
- mountPath: <somePathHere>
name: someNameHerevolumeMounts:
- name: someNameHere
mountPath: <somePathHere>第一和第二两者都是相同的,存储在卷someNameHere中的所有内容都被安装到路径somePathHere的Pod中。卷安装在图像中指定的路径上。这意味着卷是用pod路径安装的,现在读/写取决于应用程序。
https://stackoverflow.com/questions/65959630
复制相似问题