1.5. fejezet, Volumes

Kapcsolódó hivatkozások

A pod életciklusától független, ha volume-ot alkalmazunk az adatok perzisztens tárolására. Egyik névtérhez sem tartozik, és minden névtérből elérhető. A volume lehet lokális és távoli. ConfigMap-ba tárolja a beállításait, és a Pod-ban kell felcsatolni.

  • Persistent volume
  • Persistent volume claim
  • Storage Class

Volume

apiVersion: v1
kind: PersistentVolume
metadata:
  name: example-pv
spec:
  capacity:
    storage: 100Gi
  volumeMode: Filesystem
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Delete
  storageClassName: local-storage
  local:
    path: /mnt/disks/ssd1
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - example-node

Pod volume mount

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: myfrontend
      image: nginx
      volumeMounts:
      - mountPath: "/var/www/html"
        name: mypd
  volumes:
    - name: mypd
      persistentVolumeClaim:
        claimName: pvc-name

Lokális könyvtár felcsatolása

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mongodb-deployment
  labels:
    app: mongodb
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mongodb
  template:
    metadata:
      labels:
        app: mongodb
    spec:
      containers:
      - name: mongodb
        image: mongo
        ports:
        - containerPort: 27017
        env:
        - name: MONGO_INITDB_ROOT_USERNAME
          valueFrom:
            secretKeyRef:
              name: mongodb-secret
              key: mongo-root-username
        - name: MONGO_INITDB_ROOT_PASSWORD
          valueFrom: 
            secretKeyRef:
              name: mongodb-secret
              key: mongo-root-password
        volumeMounts:
          - mountPath: "/data/db" # pod könyvtár ahová csatoljuk a lokális könyvtárat
            name: mymongoroot
      volumes:
      - name: mymongoroot
        hostPath:
          path: /data/mongodb # lokális fájlrendszeren található könyvtár amit felcsatolunk

Minikube környezetben a könyvtár tulajdonosa legyen a docker felhasználó.

minikube ssh
sudo mkdir /data/mongodb
sudo chown docker:docker /data/mongodb/

Csupasz vason pedig

sudo chown dnsmasq:systemd-journal /data/mongodb