Kubernetes:挂载的文件是一个...目录?

标签 kubernetes kubectl kubernetes-secrets

我创建了一个 secret ,当我部署一个旨在读取该 secret 的应用程序时,该应用程序提示该 secret 是一个目录。

我做错了什么?该文件旨在作为文件来读取。

kc logs <pod>
(error) /var/config/my-file.yaml: is a directory.

secret 是这样创建的。

kubectl create secret generic my-file.yaml --from-file=my-file.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

最佳答案

您正在卷安装部分中使用subPath。根据 Kubernetes volume doc ,当您在同一个 pod 中出于不同目的需要相同的卷时,您应该使用 subPath

但这里您仅将该卷用于单次使用。但我会为您提供带有子路径和不带子路径的 yaml 文件。

带有子路径

          volumeMounts:
            - name: my-secret-volume
              mountPath: /var/config
              subPath: config
              readOnly: true

没有子路径

          volumeMounts:
            - name: my-secret-volume
              mountPath: /var/config
              readOnly: true

list 文件的其余部分在两种情况下都是相同的。

关于Kubernetes:挂载的文件是一个...目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66818858/

相关文章:

java - hazelcast-kubernetes 网络发现 : How to use with Multiple Nodes

nginx - 上游服务IP变化时Kubernetes nginx刷新ip地址

kubernetes - kubectl get componentstatus 显示不健康

kubernetes - 更改安装在投影卷上的 kubernetes secret 文件的默认文件所有者和组所有者

nginx - 在 kubernetes 中使用 nginx ingress 时是否需要 nginx 镜像?

windows - 在Windows上安装Kubectl插件

Kubernetes/Kubectl打印所有 secret

python - kubectl:它如何发现 incluster 配置?

kubernetes - Helm Charts 中的 secret 管理

kubernetes - 将 K8s secret 的访问限制为特定服务帐户