zoukankan      html  css  js  c++  java
  • emptyDir与hostPath

    Volume类型

    volume是kubernetes Pod中多个容器访问的共享目录。volume被定义在pod上,被这个pod的多个容器挂载到相同或不同的路径下。volume的生命周期与pod的生命周期相同,pod内的容器停止和重启时一般不会影响volume中的数据。所以一般volume被用于持久化pod产生的数据。

    Kubernetes提供了众多的volume类型,包括emptyDir、hostPath、nfs、glusterfs、cephfs、ceph rbd等。具体可以参考官方文档

    本篇文章我们简单说下emptyDir和hostPath。

    emptyDir

    emptyDir类型的volume在pod分配到node上时被创建,kubernetes会在node上自动分配 一个目录,因此无需指定宿主机node上对应的目录文件。这个目录的初始内容为空,当Pod从node上移除时,emptyDir中的数据会被永久删除。

    emptyDir Volume主要用于某些应用程序无需永久保存的临时目录,多个容器的共享目录等。

    下面是一个pod挂载emptyDir的示例:

    apiVersion: v1
    kind: Pod
    metadata:
      name: test-pod
    spec:
      containers:
      - image: test-webserver
        name: test-container
        volumeMounts:
        - name: cache-volume
          mountPath: /cache
      volumes:
      - name: cache-volume
        emptyDir: {}
    

    hostPath

    hostPath Volume为pod挂载宿主机上的目录或文件,使得容器可以使用宿主机的高速文件系统进行存储。缺点是,在k8s中,pod都是动态在各node节点上调度。当一个pod在当前node节点上启动并通过hostPath存储了文件到本地以后,下次调度到另一个节点上启动时,就无法使用在之前节点上存储的文件。

    hostPath使用示例:

    apiVersion: v1
    kind: Pod
    metadata:
      name: test-pod
    spec:
      containers:
      - image: test-webserver
        name: test-container
        volumeMounts:
        - name: test-volume
          mountPath: /www
      volumes:
      - name: test-volume
        hostPath:
          path: /data
    
  • 相关阅读:
    记录-tomcat启动项目配置
    记录 -- js浏览器窗口关闭调用ajax
    远程桌面时出现身份验证错误,要求的函数不受支持
    记录-马斯洛需求层次理论模型
    记录-powerDesigner 导入sql文件注释问题
    记录-Java md5加密
    记录--js 剪贴板操作 (转载)
    如何判定一台计算机的唯一性
    GO_OOP简单摘要
    后台执行命令
  • 原文地址:https://www.cnblogs.com/breezey/p/9827570.html
Copyright © 2011-2022 走看看