kubernetes學習 數據管理 Volume (二)

2、hostPathjava

  hostPath Volume 的做用是將 Docker Host 文件系統中已存在的目錄 mountPod 的容器。api

  大部分應用都不會使用 hostPath Volume, 由於這實際上增長了 Pod 與節點的耦合,限制了 Pod 的使用。ide

  不過那些須要訪問 KubernetesDocker 內部數據的應用則須要使用 hostPathspa

  若是 Pod 被銷燬了,hostPath 對應目錄仍是會被保留,從這一點來看,hostPath 的持久性比 emptyDir 強。blog

  不過一旦 H  ost 崩潰, hostPath 也就沒法訪問了。部署

 

3、外部 Storage Providerit

  若是 Kubernetes 部署在諸如 AWS、GCE、Azure 等公有云上,能夠直接使用雲硬盤做爲 Volume。io

  一個 AWS Elastic Block Store 的例子:ast

apiVersion: v1
kind: Pod
metadata:
  name: using-ebs
spec:
  containers:
  - image: busybox
    name: using-ebs
    volumeMounts:
    - mountPath: /test-rbs
      name: ebs-volume
  volumes:
  - name: ebs-volume
    awsElasticBlockStore:
      volumeID: <volume-id>
      fsType: ext4

    要在 Pod 中使用 ESB volume,必須先在 AWS 中建立,而後經過 volume-id 引用。class

  一個 Ceph 的例子:  

apiVersion: v1
kind: Pod
metadata:
  name: using-ceph
spec:
  containers:
  - image: busybox
    name: using-ceph
    volumeMounts:
    - mountPath: /test-ceph
      name: ceph-volume
  volumes:
  - name: ceph-volume
    cephfs:
        path:/some/path/in/side/cephfs
        monitors:"10.16.154.78:6789"
        secretFile: "/etc/ceph/admin.secret"

    Ceph 文件系統的 /some/path/in/side/cephfs 目錄被 mount 到容器路徑 /test-ceph。

  * 相對於 emptyDirhotPath,這些 Volume 類型的最大特色就是不依賴 KubernetesVolume 的底層基礎設施由獨立的存儲系統管理,與 Kubernetes 集羣是分離的。數據被持久化後,即便整個 Kubernetes 崩潰也不會受損。

相關文章
相關標籤/搜索