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

From wikieduonline
Jump to navigation Jump to search
 
(43 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>
  
  GCEPersistentDisk
+
  Volumes:
AWSElasticBlockStore
+
  [[VolumeMounts:]]
AzureFile
+
  [[ExtraVolumes]]
AzureDisk
+
 
  [[CSI]] ([[Container Storage Interface]])
+
== Examples ==
FC (Fibre Channel)
+
 
  [[FlexVolume]] (deprecated)
+
  {{k8s volumes examples}}
Flocker
+
 
NFS
+
* Claims: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#claims-as-volumes
iSCSI
+
<pre>
  RBD (Ceph Block Device)
+
apiVersion: v1
CephFS
+
kind: Pod
Cinder (OpenStack block storage)
+
metadata:
Glusterfs
+
  name: mypod
VsphereVolume
+
spec:
Quobyte Volumes
+
  containers:
[[HostPath]] (Single node testing only -- local storage is not supported in any way and WILL NOT WORK in a multi-node cluster)
+
    - name: myfrontend
Portworx Volumes
+
      image: nginx
ScaleIO Volumes
+
      volumeMounts:
StorageOS
+
      - mountPath: "/var/www/html"
Persisten
+
        name: mypd
 +
  volumes:
 +
    - name: mypd
 +
      persistentVolumeClaim:
 +
        claimName: myclaim
 +
</pre>
  
  
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
 
  
 +
 +
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 ==
* [[v1.11]] Resizing Persistent Volumes using Kubernetes in alpha
+
* 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
  
 +
== 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 80:
 
* [[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 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]

  • https://kubernetes.io/blog/2024/08/13/kubernetes-v1-31-release/#persistent-volume-last-phase-transition-time
  • Advertising: