📜  kubernetes 获取持久卷 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:02:33.631000             🧑  作者: Mango

Kubernetes 获取持久卷 - Shell-Bash

在Kubernetes中,使用持久卷可以实现数据的持久化存储,方便数据的持久化和数据的迁移。本文将介绍如何通过Shell-Bash方式在Kubernetes中获取持久卷。

前置条件
  • 已经安装并配置好Kubernetes集群。
  • 已经创建好了一个StorageClass名为standard
  • 已经创建好了一个PersistentVolumeClaim名为my-pvc
步骤
  1. 打开终端,使用以下命令获取当前的PersistentVolumeClaim状态:

    kubectl get pvc my-pvc
    

    返回结果类似于:

    NAME     STATUS   VOLUME           CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    my-pvc   Bound    persistentdisk   1Gi        RWO            standard       3d
    
  2. 使用以下命令获取PersistentVolumeClaim对象中的volumeName:

    kubectl get pvc my-pvc -o jsonpath='{.spec.volumeName}'
    

    返回结果类似于:

    persistentdisk
    
  3. 使用以下命令获取该PersistentVolumeClaim对应的PersistentVolume对象的详细信息:

    kubectl get pv persistentdisk -o yaml
    

    返回结果类似于:

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      annotations:
        pv.kubernetes.io/provisioned-by: kubernetes.io/gce-pd
      ...
    spec:
      capacity:
        storage: 1Gi
      accessModes:
      - ReadWriteOnce
      ...
      volumeMode: Filesystem
      storageClassName: standard
      ... 
      gcePersistentDisk:
        pdName: gke-cluster-1-persistent-disk
        ...
    
  4. 使用以下命令获取该持久卷的挂载路径:

    kubectl get pv persistentdisk -o jsonpath='{.spec.gcePersistentDisk.volumeID}' | cut -d/ -f3-
    

    返回结果类似于:

    projects/gke-cluster-1/zones/us-central1-a/disks/gke-cluster-1-persistent-disk
    
  5. 最后,在Shell-Bash中使用以下命令挂载该持久卷:

    mount /dev/disk/by-id/google-persistent-disk-1 /mnt/data
    

    其中/dev/disk/by-id/google-persistent-disk-1是通过前面的命令获取到的持久卷挂载路径,在这里会被自动映射为/dev/sdb设备。

    mnt/data是挂载点,可以根据实际需求进行更改。

结论

通过以上步骤,我们可以在Kubernetes集群中获取持久卷并进行挂载,实现数据的持久化存储。