Kubernetes storing persistent files

6/21/2018

What's the best way to store a persistent file in Kubernetes? I have a cert (.pfx) and I want to be passing to the application its path. From the looks of it it can't be stored in secrets. Was thinking about a volume but the question is how do I upload the file to it? And which type of volume to choose? Or is there any other efficient way?

-- FRC
certificate
kubernetes

2 Answers

8/30/2019

you can copy your ".pfx" file into local directory like "/home/certs/" and than mount this directory inside to your pod,check below yaml

kind: Pod apiVersion: v1 metadata: name: secret-test-pod spec: volumes:

  • name: localhostpath hostPath: path: /home/certs # path on local file system type: DirectoryOrCreate # create if not exist containers:
  • name: ... image: ... volumeMounts:
    • name: localhostpath mountPath: "/root/certs" # path inside pod or containers
-- Abdullah Khan
Source: StackOverflow

6/21/2018

It's unclear from your question why you came to the conclusion that it can't be stored as a Secret. This is one of the main use cases for Secrets.

Step 1. Create a Secret from your file:

kubectl create secret generic mysecret --from-file=myfile=/tmp/my.pfx

Step 2. Mount the Secret volume into a Pod:

kind: Pod
apiVersion: v1
metadata:
  name: secret-test-pod
spec:
  volumes:
  - name: secret-volume
    secret:
      secretName: mysecret
  containers:
  - name: ...
    image: ...
    volumeMounts:
    - name: secret-volume
      mountPath: "/etc/secret-volume"

Your container should see a file at /etc/secret-volume/myfile

-- Janos Lenart
Source: StackOverflow