我有一个要使用的第三方docker映像(https://github.com/coreos/dex/releases/tag/v2.10.0)。我需要向Pod中注入一些自定义项(CSS样式表和PNG图像)。
我还没有找到合适的方法来做到这一点。 Configmap binaryData在v1.10之前不可用(或9,我不记得了)。我可以创建一个新图像,然后将COPY
PNG文件放入图像中,但是我不希望维护该新图像的开销-仅使用提供的图像会更安全。
是否有简单的方法将我需要的这些2/3文件注入到我创建的Pod中?
答案 0 :(得分:2)
一种方法是将1个或多个卷安装到容器内的所需位置,看似/web/static
。但是,这将直接覆盖整个文件,因此您需要提供所有文件,而不仅仅是要覆盖的文件。
示例:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- image: dex:2.10.0
name: dex
volumeMounts:
- mountPath: /web/static # the mount location within the container
name: dex-volume
volumes:
- name: dex-volume
hostPath:
path: /destination/on/K8s/node # path on host machine
不同的云提供商有多种类型的存储类型,因此请查看https://kubernetes.io/docs/concepts/storage/volumes/,看看是否有一些特定于您的环境的东西而不是存储在磁盘上。
就其价值而言,创建自己的图像可能是最简单的解决方案。
答案 1 :(得分:0)
您可以将自定义文件安装到卷中,并另外定义一组在pod启动时运行的命令(请参见here),以将文件复制到目标路径。
除了复制文件的命令之外,您当然还需要运行启动服务的命令。