Pod
Pod 是Kubernetes中創建和管理的最小單元,是一個或多個容器的組合,Pod中的容器共享存儲和網絡資源,以及運行容器的規范。
Volume
Volume是Pod內部的共享存儲資源,生命周期和Pod相同,與容器無關,即使Pod上的容器停止或者重啟,Volume也不會受到影響。但如果Pod終止,那么Volume的生命周期也會結束。
Persistent Volume(PV)
Volume中的數據無法持久保留,不能滿足有狀態服務的需求,因此需要Persistent Volume。PV是Kubernetes中的持久存儲資源,是一種網絡存儲,它的生命周期和Pod無關。如果在Kubernetes中運行有狀態服務,比如數據庫MySQL,MongoDB或者中間件Redis,RabbitMQ等,那么就需要使用PV,這樣即使Pod終止也不會丟失數據。
Persistent Volume Claim(PVC)
Persistent Volume Claim是PV的聲明。在Kubernetes中,直接使用PV作為存儲時,需要集群管理員提前創建好PV,使用上不靈活。而PVC可以將Pod和PV解耦,即Pod不直接使用PV,而是通過PVC來使用PV。這樣,無需提前創建PV,只要通過StorageClass把存儲資源定義好,Kubernetes就會根據使用需要,動態創建PV,這種方式稱為動態供應。
StorageClass
StorageClass用于描述不同的存儲類型。當通過PVC動態創建HBlock 的卷時,需要在StorageClass中配置創建HBlock卷的參數,如卷冗余模式、扇區大小、寫策略等信息。
Container Storage Interface(CSI)
Container Storage Interface(CSI)是通用存儲接口,旨在實現容器編排器和存儲提供商之間的互操作。通過CSI,容器編排器能夠使用任何存儲提供商的存儲服務,存儲提供商也可以為任何容器編排器提供存儲服務。
DaemonSet
DaemonSet確保集群中所有(或部分)節點運行一個Pod副本,當節點加入到集群時,Pod就被添加到節點上。當節點從集群中移除時,Pod就被垃圾回收。HBlock CSI插件使用的是DaemonSet類型的Pod控制器,會在每臺節點上啟動插件。
StatefulSet
StatefulSet是有狀態服務的Pod控制器。StatefulSet用于管理一組Pod的部署和擴展,可以保證Pod的有序啟動和停止等。
namespace
在Kubernete中,namespace(命名空間)是一種用于對集群資源進行組織和隔離的機制。它像一個邏輯分區,將 Kubernetes 集群劃分為多個虛擬集群,每個namespace都有自己的資源對象,如 Pod、PVC等。這些資源對象在各自的 namespace 中是獨立的,相同名稱的資源可以存在于不同的namespace中而不會產生沖突。
VolumeSnapshot
在 Kubernetes中,卷快照(VolumeSnapshot)表示存儲系統中卷的一個快照。
VolumeSnapshotContent
在 Kubernetes 中,是由管理員在集群中配置的卷的快照。它類似于 PersistentVolume 是集群中的一個資源。
VolumeSnapshotClass
在Kubernetes 中,VolumeSnapshotClass允許你指定屬于VolumeSnapshot的不同屬性。這些屬性可能因同一存儲卷上的不同快照而異。
克隆
克隆被定義為一個現有Kubernetes卷的復制品,它可以像任何標準卷一樣被使用。唯一的區別在于配置時,不是創建一個“新的”空卷,而是由后端設備創建一個指定卷的精確復制品。