Kubernetes v1.7新特性解析-本地數據卷

本地數據卷(Local Volume)代表一個本地存儲設備,比如磁碟、分區或者目錄等。主要的應用場景包括分散式存儲和資料庫等需要高性能和高可靠性的環境里。本地數據卷同時支持塊設備和文件系統,通過spec.local.path指定;但對於文件系統來說,kubernetes並不會限制該目錄可以使用的存儲空間大小。

本地數據卷只能以靜態創建的PV使用。相對於HostPath,本地數據卷可以直接以持久化的方式使用(它總是通過NodeAffinity調度在某個指定的節點上)。

另外,社區還提供了一個local-volume-provisioner,用於自動創建和清理本地數據卷。

示例

創建一個調度到hostname為example-node的本地數據卷:

apiVersion: v1nkind: PersistentVolumenmetadata:n name: example-local-pvn annotations:n "volume.alpha.kubernetes.io/node-affinity": {n "requiredDuringSchedulingIgnoredDuringExecution": {n "nodeSelectorTerms": [n { "matchExpressions": [n { "key": "kubernetes.io/hostname",n "operator": "In",n "values": ["my-node"]n }n ]}n ]}n },nspec:n capacity:n storage: 5Gin accessModes:n - ReadWriteOncen persistentVolumeReclaimPolicy: Deleten storageClassName: local-storagen local:n path: /mnt/disks/ssd1n

創建PVC:

kind: PersistentVolumeClaimnapiVersion: v1nmetadata:n name: example-local-claimnspec:n accessModes:n - ReadWriteOncen resources:n requests:n storage: 5Gin storageClassName: local-storagen

創建Pod,引用PVC:

kind: PodnapiVersion: v1nmetadata:n name: mypodnspec:n containers:n - name: myfrontendn image: nginxn volumeMounts:n - mountPath: "/var/www/html"n name: mypdn volumes:n - name: mypdn persistentVolumeClaim:n claimName: example-local-claimn

本文已發布到《Kubernetes指南》開源書,歡迎關注。

推薦閱讀:

容器編排之Kubernetes安裝與配置
kubernetes的網路實現
kubernetes1.4.5安裝文檔
編排工具充分發揮了 Linux 容器技術優勢

TAG:Kubernetes | Docker | cloudnative |