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

From wikieduonline
Jump to navigation Jump to search
 
(30 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__
 
__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 ==
 
== Examples ==
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
 
  
== Providers ==
+
{{k8s volumes examples}}
  [[GCEPersistentDisk]]
+
 
[[AWSElasticBlockStore]]
+
* Claims: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#claims-as-volumes
AzureFile
+
<pre>
AzureDisk
+
apiVersion: v1
[[CSI]] ([[Container Storage Interface]])
+
kind: Pod
  FC (Fibre Channel)
+
metadata:
  [[FlexVolume]] (deprecated)
+
  name: mypod
  Flocker
+
spec:
  NFS
+
  containers:
iSCSI
+
    - name: myfrontend
  RBD (Ceph Block Device)
+
      image: nginx
  CephFS
+
      volumeMounts:
  Cinder (OpenStack block storage)
+
      - mountPath: "/var/www/html"
  Glusterfs
+
        name: mypd
  VsphereVolume
+
  volumes:
  Quobyte Volumes
+
    - name: mypd
[[HostPath]] (Single node testing only -- local storage is not supported in any way and WILL NOT WORK in a multi-node cluster)
+
      persistentVolumeClaim:
Portworx Volumes
+
        claimName: myclaim
ScaleIO Volumes
+
</pre>
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 ==
 
== News ==
 +
* Aug 2024 Persistent Volume last phase transition time <ref>https://kubernetes.io/blog/2024/08/13/kubernetes-v1-31-release/#persistent-volume-last-phase-transition-time</ref>
 
* Jun 2018 [[v1.11]] [[Resizing]] Persistent Volumes using Kubernetes in alpha
 
* 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 52: Line 81:
 
* <code>[[kubectl apply]]</code>
 
* <code>[[kubectl apply]]</code>
 
* [[Container Storage Interface (CSI)]]
 
* [[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 volumes}}
 
* {{Kubernetes storage}}
 
* {{Kubernetes storage}}
 
  
 
[[Category:K8s]]
 
[[Category:K8s]]

Latest revision as of 14:47, 12 September 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]

  • Aug 2024 Persistent Volume last phase transition time [1]
  • Jun 2018 v1.11 Resizing Persistent Volumes using Kubernetes in alpha

CKA[edit]

Activities[edit]

Related terms[edit]

See also[edit]

Advertising: