Kubernetes 库伯内特斯:挂载的文件是。。。目录
我创建了一个秘密,当我部署一个应用程序来读取该秘密时,该应用程序会抱怨该秘密是一个目录 我做错了什么?该文件也可以作为文件读取Kubernetes 库伯内特斯:挂载的文件是。。。目录,kubernetes,kubectl,kubernetes-secrets,Kubernetes,Kubectl,Kubernetes Secrets,我创建了一个秘密,当我部署一个应用程序来读取该秘密时,该应用程序会抱怨该秘密是一个目录 我做错了什么?该文件也可以作为文件读取 kc logs <pod> (error) /var/config/my-file.yaml: is a directory. 这里是部署 apiVersion: apps/v1 kind: Deployment metadata: name: a-name spec: replicas: 1 selector: matchLabels
kc logs <pod>
(error) /var/config/my-file.yaml: is a directory.
这里是部署
apiVersion: apps/v1
kind: Deployment
metadata:
name: a-name
spec:
replicas: 1
selector:
matchLabels:
name: a-name
template:
metadata:
labels:
name: a-name
spec:
volumes:
- name: my-secret-volume
secret:
secretName: my-file.yaml
containers:
- name: a-name
image: test/image:v1.0.0
volumeMounts:
- name: my-secret-volume
mountPath: /var/config/my-file.yaml
subPath: my-file.yaml
readOnly: true
ports:
- containerPort: 1234
- containerPort: 5678
imagePullPolicy: Always
args:
- run
- --config
- /var/config/my-file.yaml
revisionHistoryLimit: 1
您正在卷装载部分使用
子路径
。根据Kubernetes的说法,当您在同一个pod中出于不同的目的需要相同的卷时,您应该使用子路径
但在这里,您仅将卷用于一次性使用。但我会给你们两个yaml文件,有子路径和没有子路径
带子路径
无子路径
在这两种情况下,清单文件的其余部分将是相同的
apiVersion: apps/v1
kind: Deployment
metadata:
name: a-name
spec:
replicas: 1
selector:
matchLabels:
name: a-name
template:
metadata:
labels:
name: a-name
spec:
volumes:
- name: my-secret-volume
secret:
secretName: my-file.yaml
containers:
- name: a-name
image: test/image:v1.0.0
volumeMounts:
- name: my-secret-volume
mountPath: /var/config/my-file.yaml
subPath: my-file.yaml
readOnly: true
ports:
- containerPort: 1234
- containerPort: 5678
imagePullPolicy: Always
args:
- run
- --config
- /var/config/my-file.yaml
revisionHistoryLimit: 1
volumeMounts:
- name: my-secret-volume
mountPath: /var/config
subPath: config
readOnly: true
volumeMounts:
- name: my-secret-volume
mountPath: /var/config
readOnly: true