[英]Storing the Cassandra data using Stateful set
我一直在閱讀有關在 kubernetes 上推送數據庫的方法。 最初,我將數據附加到 docker 映像並部署了service
和deployment
文件。 但問題是當容器/pod 重新啟動時,數據會丟失。 然后,我遇到了持久數量聲明的概念。 我發現( https://www.magalix.com/blog/kubernetes-and-database )和( https://kubernetes.io/docs/tutorials/stateful-application/cassandra/ )非常有用。 我對他們有幾個問題:
PVC:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pv-claim
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
光伏:
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-pv-volume
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 20Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/data"
PVC 將消耗您提供的 PV 資源。 Kubernetes 文檔中有關於Persistent Volumes的更詳細解釋,包括卷的生命周期和 PV 聲明。
順便提一下,如果您還沒有意識到,有幾個 Cassandra 操作符隨時可用,這使您可以更輕松地在 Kubernetes 上部署集群,包括Instaclustr的 CassKop和 DataStax 的cass-operator 。
DataStax cass-operator 允許您部署 DSE 集群或 Apache Cassandra 集群。 您可以在此處的官方文檔站點上找到更多信息。 如果您有任何問題,也可以通過https://community.datastax.com直接聯系 cass-operator 的作者。 干杯!
持久卷:
PV
是集群中的一塊存儲,由管理員配置或使用Storage Classes
dynamically provisioned
。 持久卷聲明PVC
是用戶的存儲請求。 它類似於 Pod。 Pod 消耗節點資源,PVCs
消耗PV
資源。
如果要綁定PV
和PVC
您可以在兩種Provisioning方式之間進行選擇:
集群管理員創建了許多
PVs
。 它們攜帶真實存儲的詳細信息,可供集群用戶使用。 它們存在於 Kubernetes API 中,可供使用。
當管理員創建的靜態
PVs
都不匹配用戶的PersistentVolumeClaim
,集群可能會嘗試專門為PVC
動態配置卷。 此供應基於StorageClasses:
PVC
必須請求storage class
,並且管理員必須已創建並配置該類才能進行動態供應。 請求類 "" 的聲明有效地為自己禁用動態配置。
簡而言之,如果您使用Static
配置,則您需要為每個PVC
創建PV
,因為它們是 1:1 的邊界關系。
您可以在此線程中找到更多有用的詳細信息。
當您使用支持動態卷配置的雲環境(亞馬遜)時,您可以只使用PVC
。 Dynamic Provisioning
將創建具有PVC
要求的PV
。
當您使用Statefulset
並且需要確保每個 pod 都有自己的PV
,您可以像文檔示例中那樣使用VolumeClaimTemplate
。
關於主要問題:
PVC如何從集群中的PV獲取存儲? 如果我使用 Amazon 雲運行我的服務,那么相同的步驟是什么(如果有)。
如果要使用靜態配置,則需要為每個 Pod 創建PV
和PVC
。
由於大多數雲提供商支持Dynamic Provisioning
您只需創建PVC
,Cloud Provisioner 將自動創建具有PVC
要求的PV
。 此外,在statefulset
為 pod 創建PV
和PVC
的最常見方法是使用VolumeClaimTemplate
,您可以在其中指定storageclass 、 storage
和更多其他參數:
volumeClaimTemplates: - metadata: name: cassandra-data spec: accessModes: [ "ReadWriteOnce" ] storageClassName: fast resources: requests: storage: 1Gi
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.