无法将Kubernetes Secret装载为Pod中的文件
我正在尝试将一个作为机密创建的配置文件装载到pod中的特定路径。但是,pod上的装载路径始终作为目录生成。有人能告诉我我做错了什么吗无法将Kubernetes Secret装载为Pod中的文件,kubernetes,kubernetes-secrets,Kubernetes,Kubernetes Secrets,我正在尝试将一个作为机密创建的配置文件装载到pod中的特定路径。但是,pod上的装载路径始终作为目录生成。有人能告诉我我做错了什么吗 > kubectl get secrets config NAME TYPE DATA AGE config Opaque 1 29m pod yaml: apiVersion: v1 kind: Pod metadata: name: test-pd-plus-secret spec: c
> kubectl get secrets config
NAME TYPE DATA AGE
config Opaque 1 29m
pod yaml:
apiVersion: v1
kind: Pod
metadata:
name: test-pd-plus-secret
spec:
containers:
- image: ubuntu
name: bash
stdin: true
tty: true
volumeMounts:
- name: "config"
mountPath: "/mnt/configFile"
subPath: "configFile"
volumes:
- name: "config"
secret:
secretName: "config"
创建pod后,我尝试读取pod上的文件,并获得:
cat: /mnt/configFile: Is a directory
我使用的是:kubernetes客户端版本1.9.0和服务器版本1.8.6您想要的语法是只选择机密的
项:
,而不是以那种方式尝试使用子路径。它是
我不确定我是否没有充分澄清上下文,或者我仍然对你的答案感到困惑。我试图挂载的秘密文件是一个实际的文件,应该存在于pod文件系统的特定路径上。该文件的内容包含许多配置键值对。我确实尝试了您建议的代码片段:我删除了pod的volumeMounts规范中的子路径条目,并按照您所说的创建了卷。然而,现在我的吊舱被困在一个集装箱制造循环中。另外,您提到的文档似乎是v1.10,我使用的是k8s 1.8(服务器)。您是否尝试过在没有装载的情况下运行pod,并检查/mnt/configFile
是否存在(如果存在,它是文件还是目录)?如果它作为目录存在,那么这就解释了为什么不能在它上面挂载文件。如果它以文件的形式存在,或者它不存在,那么就我所知,您应该能够在它上面挂载一个文件,我认为您所做的应该是可行的。
volumes:
- name: config
secret:
secretName: config
items:
- key: configFile
path: configFile