如何将二进制文件注入v1.7容器

时间:2018-07-13 10:35:57

标签: kubernetes

我有一个要使用的第三方docker映像(https://github.com/coreos/dex/releases/tag/v2.10.0)。我需要向Pod中注入一些自定义项(CSS样式表和PNG图像)。

我还没有找到合适的方法来做到这一点。 Configmap binaryData在v1.10之前不可用(或9,我不记得了)。我可以创建一个新图像,然后将COPY PNG文件放入图像中,但是我不希望维护该新图像的开销-仅使用提供的图像会更安全。

是否有简单的方法将我需要的这些2/3文件注入到我创建的Pod中?

2 个答案:

答案 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),以将文件复制到目标路径。

除了复制文件的命令之外,您当然还需要运行启动服务的命令。