摘要:同時登錄控制臺,發現展示容量也增大到了。最穩定的擴容方案是先停止應用層服務解除掛載目錄,再進行數據卷擴容。此時,和依然相互,對應的已經從云主機中卸載,處于可用狀態。
本文檔主要描述如何在 UK8S 中擴容 UDisk 類型的 PVC,包括在線擴容和離線擴容兩種場景。
UK8S Node 節點實例的創建時間必須晚于 2020 年 5 月,不滿足此條件的節點,則必須先對 Node 節點進行先關機,再開機操作。
Kubernetes版本不低于 1.14,如集群版本是 1.14 及 1.15,必須在三臺 Master 節點 /etc/kubernetes/apiserver
文件中配置
--feature-gates=ExpandCSIVolumes=true
,并通過 systemctl restart kube-apiserver
重啟
APIServer。并需要在node節點中修改/etc/kubernetes/kubelet
文件中配置,增加--feature-gates=ExpandCSIVolumes=true
,執行systemctl restart kubelet
重啟 kubelet。對于 1.14
版本的集群,如果需要在線擴容(pod 不重啟),需要同時配置 ExpandInUsePersistentVolumes=true
的特性開關。1.13 及以下版本不支持該特性,1.16
及以上版本無需配置;
CSI-UDisk版本不低于 20.08.1,CSI 版本更新及升級請查看:CSI 更新記錄及升級指南;
擴容時聲明的期望容量大小必須是 10 的整數倍,單位為 Gi;
只支持動態創建的 PVC 擴容,且 storageClass 必須顯示聲明可擴容(見后文);
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: csi-udisk-ssd
provisioner: udisk.csi.ucloud.cn # provisioner 必須為 udisk.csi.ucloud.cn
parameters:
type: "ssd"
fsType: "ext4"
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true # 必須聲明該存儲類支持可擴容特性
2.2 通過該存儲類創建PVC,并掛載到Podkind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: udisk-volume-expand
spec:
accessModes:
- ReadWriteOnce
storageClassName: csi-udisk-ssd
resources:
requests:
storage: 10Gi
---
apiVersion: v1
kind: Pod
metadata:
name: udisk-expand-test
labels:
app: udisk
spec:
containers:
- name: http
image: uhub.service.ucloud.cn/ucloud/nginx:1.17.10-alpine
imagePullPolicy: Always
ports:
- containerPort: 8080
volumeMounts:
- name: udisk
mountPath: /data
volumes:
- name: udisk
persistentVolumeClaim:
claimName: udisk-volume-expand
Pod啟動后,我們分別查看下 PV、PVC 以及容器內的文件系統大小,可以發現,目前都是10Gi
# kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-25b83584-35de-43e4-ad23-c1fc638a09e2 10Gi RWO Delete Bound default/udisk-volume-expand ssd-csi-udisk 2m26s
# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
udisk-volume-expand Bound pvc-25b83584-35de-43e4-ad23-c1fc638a09e2 10Gi RWO ssd-csi-udisk 2m30s
# kubectl exec -it udisk-expand-test -- df -h
Filesystem Size Used Avail Use% Mounted on
...
/dev/vdc 9.8G 37M 9.7G 1% /data
...
2.3 在線擴容 PVC執行 kubectl edit pvc udisk-volume-expand
,將 spec.resource.requests.storage
改成 20Gi, 保存后退出,
大概在一分鐘左右,PV、PVC 以及容器內的文件系統大小容量屬性都變成了 20Gi。
# kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-25b83584-35de-43e4-ad23-c1fc638a09e2 20Gi RWO Delete Bound default/udisk-volume-expand ssd-csi-udisk 2m26s
# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
udisk-volume-expand Bound pvc-25b83584-35de-43e4-ad23-c1fc638a09e2 20Gi RWO ssd-csi-udisk 2m30s
# kubectl exec -it udisk-expand-test -- df -h
Filesystem Size Used Avail Use% Mounted on
...
/dev/vdc 20G 37M 19.7G 1% /data
...
同時登錄UDisk控制臺,發現 UDisk 展示容量也增大到了 20Gi。這樣我們完成了Pod不重啟,服務不停機的數據卷在線擴容。
2.4 離線擴容 PVC(推薦)在上面的示例中,我們完成了數據卷的在線擴容。但在高 IO 的場景下,Pod 不重啟進行數據卷擴容,有小概率導致文件系統異常。最穩定的擴容方案是先停止應用層服務、解除掛載目錄,再進行數據卷擴容。下面我們演示下如何進行停服操作。
上文步驟 2.3完成的時候,我們有一個 Pod 且掛載了一個 20Gi 的數據卷,現在我們需要對數據卷進行停服擴容。
基于上文的示例 yaml,去掉 PVC 相關的內容,多帶帶創建一個名為 udisk-expand-test 的 yaml,只保留 Pod 的相關信息。然后刪除 Pod,但保留 PVC 和 PV。# kubectl delete po udisk-expand-test
pod "udisk-expand-test" deleted
此時,PV 和 PVC 依然相互 Bound,對應的 UDisk 已經從云主機中卸載,處于可用狀態。
修改 PVC 信息,將 spec.resource.requests.storage 改成 30Gi, 保存并退出。等待一分鐘左右后,執行 kubectl get pv
,當 PV 的容量增長到 30Gi后,重建 Pod。需要注意的是,此時執行 kubectl get pvc
的時候,返回的 PVC
容量依然是 20Gi,這是因為文件系統尚未擴容完畢,PVC 處于FileSystemResizePending 狀態。
# kubectl edit pvc udisk-volume-expand
persistentvolumeclaim/udisk-volume-expand edited
# kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-25b83584-35de-43e4-ad23-c1fc638a09e2 30Gi RWO Delete Bound default/udisk-volume-expand ssd-csi-udisk 20m
# kubectl create -f udisk-expand-test.yml
當 Pod 重新創建成功后,可以發現,PV、PVC 的容量大小都是 30Gi,同時在容器中執行 df 看到的對應文件系統容量也是 30Gi。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/126713.html
摘要:宋體自年被開源以來,很快便成為了容器編排領域的標準。宋體年月,樂心醫療的第一個生產用集群正式上線。所以于年推出后,樂心醫療的運維團隊在開會討論之后一致決定盡快遷移到。Kubernetes 自 2014 年被 Google 開源以來,很快便成為了容器編排領域的標準。因其支持自動化部署、大規模可伸縮和容器化管理等天然優勢,已經被廣泛接納。但由于 Kubernetes 本身的復雜性,也讓很多企業的...
摘要:請您使用前務必確認可以接受該風險。創建并與關聯創建并與關聯需要與相對應。在中使用在中使用在中使用 在UK8S中使用UDISK本篇目錄1. 存儲類 StorageClass2. 創建持久化存儲卷聲明 PVC3. 在 Pod 中使用 PVCUK8S支持直接在集群中使用UDisk作為持久化存儲卷。備注:所有云主機均支持 SSD/SATA UDisk,如果節點的云主機類型為快杰,則也支持 RSSD ...
摘要:節點資源預留導致的浪費。虛擬節點實現了和這兩大容器產品的無縫對接,豐富了集群的彈性能力。單個虛擬節點計算資源理論無上限,無需擔心容量問題。通過虛擬節點及,可以用最小的資源成本,來應對高峰期的任務壓力,提升整體任務效率。隨著云原生概念的深入人心,越來越多的企業開始著手基于容器相關技術來部署其應用,Serverless也開始在企業IT基礎構建中發揮出越來越重要的作用。UCloud 先后推出了開箱...
摘要:詳細請見產品價格產品概念使用須知名詞解釋漏洞修復記錄集群節點配置推薦模式選擇產品價格操作指南集群創建需要注意的幾點分別是使用必讀講解使用需要賦予的權限模式切換的切換等。UK8S概覽UK8S是一項基于Kubernetes的容器管理服務,你可以在UK8S上部署、管理、擴展你的容器化應用,而無需關心Kubernetes集群自身的搭建及維護等運維類工作。了解使用UK8S為了讓您更快上手使用,享受UK...
摘要:會使用到以下產品的全部操作權限,例如代替你創建刪除云主機,由此產生的費用由你負責,請知悉。如何識別由創建的云資源由創建的云資源名稱,都遵循明確的命名規范,具體詳見命名規范簡要說明如下名稱,如名稱為的云主機,是這個集群的節點。容器云UK8S使用必讀注意:通過UK8S創建的云主機、云盤、EIP等資源,刪除資源請不要通過具體的產品列表頁刪除,否則可能導致UK8S運行不正常或數據丟失風險,可以通過U...
摘要:注意通過創建的云主機云盤等資源,刪除資源請不要通過具體的產品列表頁刪除,否則可能導致運行不正常或數據丟失風險,可以通過將資源釋放或解綁刪除。會使用到以下產品的全部操作權限,例如代替你創建刪除云主機,由此產生的費用由你負責,請知悉。注意:通過UK8S創建的云主機、云盤、EIP等資源,刪除資源請不要通過具體的產品列表頁刪除,否則可能導致UK8S運行不正常或數據丟失風險,可以通過UK8S將資源釋放...
閱讀 291·2024-11-07 18:25
閱讀 130372·2024-02-01 10:43
閱讀 868·2024-01-31 14:58
閱讀 828·2024-01-31 14:54
閱讀 82769·2024-01-29 17:11
閱讀 3054·2024-01-25 14:55
閱讀 1985·2023-06-02 13:36
閱讀 3034·2023-05-23 10:26