gpt4 book ai didi

Kubernetes,VolumeMounts 文件,而不是目录

转载 作者:行者123 更新时间:2023-12-04 00:56:26 24 4
gpt4 key购买 nike

我将使用 K8S 来编排 docker 容器。在k8s中,我需要从主机目录( /configs/nginx/cas-server.conf )复制一个文件到pod容器目录( /etc/nginx/nginx.conf ),但目前的k8s只允许挂载一个目录,而不是挂载/复制文件。如何解决这个问题呢?

下面是我的 nginx-cas-server-deply.yaml 文件。

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-cas-server-depl
spec:
replicas: 1
template:
metadata:
labels:
app: nginx-cas-server-pod
spec:
containers:
- name: nginx-cas-server-pod
image: nginx
imagePullPolicy: Never
ports:
- containerPort: 100
volumeMounts:
- mountPath: /etc/nginx/nginx.conf
name: nginx-cas-server-conf
- mountPath: /app/cas-server/public
name: nginx-cas-server-public
volumes:
- name: nginx-cas-server-conf
hostPath:
path: /configs/nginx/cas-server.conf
- name: nginx-cas-server-public
hostPath:
path: /cas-server/public

最佳答案

在部署的配置中,您需要使用 mountPath 目录 文件 名称和 subPath 字段与 文件 名称。此外,重要的是,您需要在节点上的文件与您希望挂载的名称完全相同,因此如果您想挂载到 /etc/nginx/nginx.conf ,文件应命名为 nginx.conf
这是示例:

Node上的目录内容:

# ls /config/
nginx.conf some_dir

Nginx 部署的配置文件
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
run: nginx
name: nginx
namespace: default
spec:
replicas: 1
selector:
matchLabels:
run: nginx
template:
metadata:
labels:
run: nginx
spec:
containers:
- image: nginx
name: nginx
volumeMounts:
- mountPath: /etc/nginx/nginx.conf
name: test
subPath: nginx.conf
volumes:
- hostPath:
path: /config
name: test

关于Kubernetes,VolumeMounts 文件,而不是目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53491603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com