我将配置映射与文件一起使用,但我正在尝试使用像 supervisor d 和其他内部工具这样的便携式服务。
我们有可以在任何图像中运行的 golang 二进制文件。我正在尝试使用 configmap 运行这些二进制文件。
示例:-我们有一个用 Go 编写的内部工具(大小小于 7MB)可以存储在配置映射中,我们想将该配置映射挂载到 kuberneates pod 中并希望在 pod 中运行它
问题:-有人用吗?这是一个好方法吗?最佳做法是什么?
我将配置映射与文件一起使用,但我正在尝试使用像 supervisor d 和其他内部工具这样的便携式服务。
我们有可以在任何图像中运行的 golang 二进制文件。我正在尝试使用 configmap 运行这些二进制文件。
示例:-我们有一个用 Go 编写的内部工具(大小小于 7MB)可以存储在配置映射中,我们想将该配置映射挂载到 kuberneates pod 中并希望在 pod 中运行它
问题:-有人用吗?这是一个好方法吗?最佳做法是什么?
我不相信您可以将 7MB 的内容放在 ConfigMap 中。例如,请参见此处。您正在尝试做的事情听起来像是一种非常不寻常的做法。在 Kubernetes 的 Pod 中运行二进制文件的标准做法是构建一个包含二进制文件的容器镜像,并配置该镜像或 Pod 以运行该二进制文件。
在 k8s pod 中存储 elastic.jks 密钥库二进制文件时,我也遇到了类似的问题。
AFAIK有两种选择:
或者
apiVersion: v1
kind: Pod
metadata:
name: alpine
namespace: default
spec:
containers:
- name: myapp-container
image: alpine:3.1
command: ['sh', '-c', 'if [ -f /jks/elastic.jks ]; then sleep 99999; fi']
volumeMounts:
- name: jksdata
mountPath: /jks
initContainers:
- name: init-container
image: atlassian/pipelines-awscli
command: ["/bin/sh","-c"]
args: ['aws s3 sync s3://my-artifacts/$CLUSTER /jks/']
imagePullPolicy: IfNotPresent
volumeMounts:
- name: jksdata
mountPath: /jks
env:
- name: CLUSTER
value: dev-elastic
volumes:
- name: jksdata
emptyDir: {}
restartPolicy: Always
正如@amit-kumar-gupta 提到的 configmap 大小约束。
我推荐第二种方式。
希望这可以帮助。