Difference between revisions of "Kubernetes Persistent Volumes (PV)"

From wikieduonline
Jump to navigation Jump to search
 
(46 intermediate revisions by 8 users not shown)
Line 1: Line 1:
Persistent Volumes subsystem provides an API for users and administrators that abstracts details of how storage is provided from how it is consumed
+
TOMERGE: [[Kubernetes Persistent volumes]]
  
 +
Kubernetes Persistent Volumes subsystem provides an API for users and administrators that abstracts details of how storage is provided from how it is consumed
 +
* https://kubernetes.io/docs/concepts/storage/persistent-volumes/
 +
* https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#persistentvolume-v1-core
 +
__NOTOC__
 
* <code>[[kubectl get pvc]]</code>
 
* <code>[[kubectl get pvc]]</code>
 
* <code>[[kubectl describe pvc mysql-pv-claim]]</code>
 
* <code>[[kubectl describe pvc mysql-pv-claim]]</code>
  
 +
Volumes:
 +
[[VolumeMounts:]]
 +
[[ExtraVolumes]]
  
 +
== Examples ==
  
 +
{{k8s volumes examples}}
  
GCEPersistentDisk
+
* Claims: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#claims-as-volumes
AWSElasticBlockStore
+
<pre>
AzureFile
+
apiVersion: v1
AzureDisk
+
kind: Pod
CSI
+
metadata:
FC (Fibre Channel)
+
  name: mypod
[[FlexVolume]] (deprecated)
+
spec:
Flocker
+
  containers:
NFS
+
    - name: myfrontend
iSCSI
+
      image: nginx
RBD (Ceph Block Device)
+
      volumeMounts:
CephFS
+
      - mountPath: "/var/www/html"
Cinder (OpenStack block storage)
+
        name: mypd
Glusterfs
+
  volumes:
VsphereVolume
+
    - name: mypd
Quobyte Volumes
+
      persistentVolumeClaim:
HostPath (Single node testing only -- local storage is not supported in any way and WILL NOT WORK in a multi-node cluster)
+
        claimName: myclaim
Portworx Volumes
+
</pre>
ScaleIO Volumes
 
StorageOS
 
Persisten
 
  
  
 +
 +
 +
spec:
 +
  volumes:
 +
    - name: elasticsearch-master
 +
      [[persistentVolumeClaim:]]
 +
        [[claimName:]] elasticsearch-master-elasticsearch-master-0
 +
    - name: mynewvolumen
 +
      emptyDir: {}
 +
 +
== [[Kubernetes Persistent Volumes (PV) providers|Providers]] ==
 +
 +
== Error ==
 +
error: error validating "yourpv": error validating data:
 +
ValidationError(PersistentVolume.spec.csi): missing required field "volumeHandle" in
 +
io.k8s.api.core.v1.CSIPersistentVolumeSource; if you choose to ignore these errors, turn
 +
validation off with --validate=false
 +
 +
== Metrics ==
 +
kubelet_volume_stats_available_bytes
 +
kubelet_volume_stats_capacity_bytes
 +
kubelet_volume_stats_inodes
 +
kubelet_volume_stats_inodes_free
 +
kubelet_volume_stats_inodes_used
 +
kubelet_volume_stats_used_bytes
 +
Ref: https://stackoverflow.com/questions/44718268/how-to-monitor-disk-usage-of-kubernetes-persistent-volumes
 +
 +
== News ==
 +
* Jun 2018 [[v1.11]] [[Resizing]] Persistent Volumes using Kubernetes in alpha
 +
 +
== CKA ==
 +
* [[CKA v1.23]]: [[Understand storage classes, persistent volumes]]
 +
* [[CKA v1.18]]: Understand [[persistent volumes]] and know how to create them
 +
* [[CKA v1.15]]: [[Understand PersistentVolumeClaims for storage]]
 +
 +
== Activities ==
 +
* [[Kubernetes: Rename PVs]]
 +
* [[Access a volume with a temporary pod]]
  
 
== Related terms ==
 
== Related terms ==
Line 35: Line 79:
 
* [[Volumes (Kubernetes)]]
 
* [[Volumes (Kubernetes)]]
 
* <code>[[kubectl apply]]</code>
 
* <code>[[kubectl apply]]</code>
 +
* [[Container Storage Interface (CSI)]]
 +
* <code>[[defaultMode:]]</code>
 +
* <code>[[values.yml]]</code>
 +
* <code>[[kubernetes_persistent_volume]]</code>
 +
* <code>[[kind: ConfigMap]]</code>
 +
* <code>[[kind: PersistentVolume]]</code>
 +
* [[Terraform kubernetes resource: kubernetes persistent volume v1]]
  
 
== See also ==
 
== See also ==
* {{K8s}}
+
* {{K8s volumes}}
 
+
* {{Kubernetes storage}}
  
 
[[Category:K8s]]
 
[[Category:K8s]]

Latest revision as of 13:48, 8 February 2024

TOMERGE: Kubernetes Persistent volumes

Kubernetes Persistent Volumes subsystem provides an API for users and administrators that abstracts details of how storage is provided from how it is consumed

Volumes:
VolumeMounts:
ExtraVolumes

Examples[edit]

 volumes:
 your-vol-1:
   Type:      ConfigMap (a volume populated by a ConfigMap)
   Name:      prod-admin-config
   Optional:  false
 your-vol-2:
   Type:        Secret (a volume populated by a Secret)
   SecretName:  your-secret-name
   Optional:    false
 your-vol-3:
   Type:                    Projected (a volume that contains injected data from multiple sources)
   TokenExpirationSeconds:  3607
   ConfigMapName:          your-kube-root-ca.crt
   ConfigMapOptional:       <nil>
   DownwardAPI:             true
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: myclaim



spec:
  volumes:
    - name: elasticsearch-master
      persistentVolumeClaim:
        claimName: elasticsearch-master-elasticsearch-master-0
    - name: mynewvolumen
      emptyDir: {}

Providers[edit]

Error[edit]

error: error validating "yourpv": error validating data: 
ValidationError(PersistentVolume.spec.csi): missing required field "volumeHandle" in 
io.k8s.api.core.v1.CSIPersistentVolumeSource; if you choose to ignore these errors, turn 
validation off with --validate=false

Metrics[edit]

kubelet_volume_stats_available_bytes
kubelet_volume_stats_capacity_bytes
kubelet_volume_stats_inodes
kubelet_volume_stats_inodes_free
kubelet_volume_stats_inodes_used
kubelet_volume_stats_used_bytes

Ref: https://stackoverflow.com/questions/44718268/how-to-monitor-disk-usage-of-kubernetes-persistent-volumes

News[edit]

  • Jun 2018 v1.11 Resizing Persistent Volumes using Kubernetes in alpha

CKA[edit]

Activities[edit]

Related terms[edit]

See also[edit]

Advertising: