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