gpt4 book ai didi

docker - 使用 deployment.yaml 将文件复制到 kubernetes pod

转载 作者:行者123 更新时间:2023-12-05 02:55:35 26 4
gpt4 key购买 nike

我有使用 Java 构建的容器化微服务。此应用程序在搜索属性文件时使用默认的 /config-volume 目录。
以前我通过 Dockerfile 手动部署,现在我希望使用 Kubernetes 自动执行此过程。

容器镜像会立即启动微服务,因此我需要立即将属性添加到 config-volume 文件夹。我用这个简单的 Dockerfile 在 Docker 中完成了这个:

FROM ########.amazon.ecr.url.us-north-1.amazonaws.com/company/image-name:1.0.0

RUN mkdir /config-volume
COPY path/to/my.properties /config-volume

我正在尝试在 kubernetes deployment.yaml 中复制这种类型的行为,但我找不到办法。

我试过在应用部署后立即执行 kubectl cp 命令,它有时可以工作,但它可能会导致竞争条件,从而导致微服务在启动时失败。

(我删除了不必要的部分)

apiVersion: apps/v1
kind: Deployment
metadata:
name: my-service
spec:
replicas: 1
template:
spec:
containers:
- env:
image: ########.amazon.ecr.url.us-north-1.amazonaws.com/company/image-name:1.0.0
name: my-service
ports:
- containerPort: 8080
volumeMounts:
- mountPath: /config-volume
name: config-volume
volumes:
- name: config-volume
emptyDir: {}
status: {}

有没有办法将文件复制到 deployment.yaml 中的卷中?

最佳答案

您正在尝试使用卷模拟 ConfigMap。相反,将您的配置放入 ConfigMap,并将其安装到您的部署中。文档在那里:

https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/

一旦您将配置设置为 ConfigMap,就可以使用如下方式安装它:

...
containers:
- name: mycontainer
volumeMounts:
- name: config-volume
mountPath: /config-volume
volumes:
- name: config-volume
configMap:
name: nameOfConfigMap

关于docker - 使用 deployment.yaml 将文件复制到 kubernetes pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61159948/

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