Kubernetes Storage Operations: Difference between revisions
Jump to navigation
Jump to search
Line 30: | Line 30: | ||
===Expose a Local Directory=== | ===Expose a Local Directory=== | ||
Define a local directory that will be exposed as a persistent volume: | |||
mkdir /mnt/disk1/local-volume-0 | |||
Define the persistent volume API resource instance: | |||
<syntaxhighlight lang='yaml'> | |||
apiVersion: v1 | |||
kind: PersistentVolume | |||
metadata: | |||
name: worker-00-local-volume-0 | |||
spec: | |||
capacity: | |||
storage: 10Gi | |||
volumeMode: Filesystem | |||
accessModes: | |||
- ReadWriteOnce | |||
persistentVolumeReclaimPolicy: Delete | |||
storageClassName: manual-local-storage | |||
local: | |||
path: /mnt/disk1/local-volume-0 | |||
nodeAffinity: | |||
required: | |||
nodeSelectorTerms: | |||
- matchExpressions: | |||
- key: kubernetes.io/hostname | |||
operator: In | |||
values: | |||
- worker-00 | |||
</syntaxhighlight> | |||
Note that in the persistent volume metadata shown above, "worker-00" is the name of the node, as known to Kubernetes. It can be obtained with: | |||
kubectl get nodes -o wide |
Revision as of 02:42, 12 December 2019
Internal
Get Information about Persistent Volumes
kubectl get pv <pv-name> kubectl describe pv <pv-name>
Get Information about Persistent Volumes Claims
kubectl get pvc <pvc-name> kubectl describe pvc <pvc-name>
Get Information about Storage Classes
NFS volume Example
This is an example to setup and use an nfs volume.
TODO: https://github.com/kubernetes/examples/tree/master/staging/volumes/nfs
Local Volumes
Create a Local Volume, the corresponding Persistent Volume and a Persistent Volume Claim that Binds to It
This is the step-by-step procedure to create a persistent volume backed by a local volume and expose it to a pod with a matching persistent volume claim.
Expose a Local Disk
In this context, "exposing a local disk" means exposing a raw block device. TODO.
Expose a Local Directory
Define a local directory that will be exposed as a persistent volume:
mkdir /mnt/disk1/local-volume-0
Define the persistent volume API resource instance:
apiVersion: v1
kind: PersistentVolume
metadata:
name: worker-00-local-volume-0
spec:
capacity:
storage: 10Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Delete
storageClassName: manual-local-storage
local:
path: /mnt/disk1/local-volume-0
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- worker-00
Note that in the persistent volume metadata shown above, "worker-00" is the name of the node, as known to Kubernetes. It can be obtained with:
kubectl get nodes -o wide