【问题标题】:how to find my persistent volume location如何找到我的持久卷位置
【发布时间】:2020-05-27 03:23:11
【问题描述】:

我尝试使用主机路径创建持久卷。我可以使用节点关联将其绑定到特定节点,但我没有提供。我的持久卷 YAML 看起来像这样

apiVersion: v1
kind: PersistentVolume
metadata:
  name: jenkins
  labels:
    type: fast
spec:
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  hostPath:
    path: /mnt/data

之后我创建了 PVC

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: myclaim
spec:
  accessModes:
    - ReadWriteOnce
  volumeMode: Filesystem
  resources:
    requests:
      storage: 1Gi

最后将它附在吊舱上。

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: myfrontend
      image: thinkingmonster/nettools
      volumeMounts:
        - mountPath: "/var/www/html"
          name: mypd
  volumes:
    - name: mypd
      persistentVolumeClaim:
        claimName: myclaim

现在在 pv 或 pvc 的描述命令中,它并没有告诉它实际上在哪个节点上保存了卷 /mnt/data

我必须通过 ssh 连接到所有节点才能找到相同的位置。

而且 pod 足够智能,只能在 Kubernetes 将主机目录映射到 PV 的节点上创建

我如何知道 Kubernetes 在哪个节点上创建了持久卷?无需 ssh 节点或检查 pod 在哪里运行。

【问题讨论】:

    标签: kubernetes persistent-volumes kubernetes-pvc


    【解决方案1】:

    只有当卷绑定到声明时,它才与特定节点相关联。 HostPath 卷与常规排序略有不同,使其不太清晰。当您get 卷声明时,其上的注释应该会为您提供大量信息,包括您要查找的内容。特别是,寻找:

    volume.kubernetes.io/selected-node: ${NODE_NAME}
    

    PVC 上的注释。您可以通过向 Kubernetes api 服务器询问该信息来查看注释以及其他计算配置:

    kubectl get pvc -o yaml -n ${NAMESPACE} ${PVC_NAME}
    

    【讨论】:

    • 在 1.18 中没有显示 :( 可能会被删除,因为我认为没有人在实际生产中使用主机卷
    • 尤其是在云环境中,节点也经常被视为一次性基础设施。当特定节点的主机路径可能在没有通知的情况下终止时,以及当您计划将其作为集群升级的一部分进行替换时,您不会将数据存储在特定节点上的主机路径中。
    猜你喜欢
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-09
    • 2020-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-06
    相关资源
    最近更新 更多