ACK, iş yükünüzü yeniden oluşturmadan bir birime ekli olan cloud disk'in kategorisini değiştirmenize olanak tanır. Örneğin, uygulamanızın depolama gereksinimleri artarsa daha yüksek IOPS elde etmek için standart SSD'yi Enterprise SSD (ESSD) ile değiştirebilirsiniz.
Ön koşullar
Başlamadan önce aşağıdaki koşulları sağladığınızdan emin olun:
Container Storage Interface (CSI) eklentisi yüklü, Kubernetes 1.20 veya üzeri sürümü çalışan bir kümeniz bulunmalıdır. Kümenizi yükseltmek için Kümeyi manuel olarak yükseltme konusuna bakın.
storage-operator bileşeninin 1.26.1-50a1499-aliyun veya üzeri bir sürümü yüklü olmalıdır. Varsayılan olarak storage-operator kümede yüklüdür. Sürümü doğrulamak için ACK konsolunda küme ayrıntıları sayfasına gidin, sol gezinme bölmesinde Operations > Add-ons seçeneğini belirleyin ve Storage sekmesine tıklayın. Daha fazla bilgi için storage-operator bileşenini yönetme konusuna bakın.
-
(Yalnızca ACK özel kümeler) Worker ve master RAM (Resource Access Management) rollerinin
ModifyDiskSpecişlemini çağırma iznine sahip olması gerekir. Bu koşul ACK yönetilen kümeler için geçerli değildir. Detaylar için Özel ilke oluşturma konusuna bakın.
Sınırlamalar
Temel diskler ve geçici diskler başka disk kategorilerine dönüştürülemez.
ESSD AutoPL diskler başka disk kategorilerine dönüştürülemez.
Yalnızca kullandıkça öde diskler birim olarak bağlanabilir.
Yeni disk kategorisinin, pod'unuzu barındıran düğümün ECS örnek türü tarafından desteklenmesi gerekir. Uyumluluk ayrıntıları için Örnek ailelerine genel bakış konusuna bakın.
Kategori değişikliği bölgesel bir ESSD'yi içeriyorsa, birimin afinite ayarları değiştirilemez. Diski kullanan pod'lar diğer alanlara yeniden planlanamaz.
Sınırlamaların tam listesi için Sınırlamalar bölümüne bakın.
Desteklenen disk kategorisi dönüşümleri
Aşağıdaki tabloda desteklenen yükseltme ve düşürme işlemleri özetlenmiştir.
| Kaynak disk kategorisi | Hedef disk kategorileri |
|---|---|
| Ultra disk | Standart SSD, ESSD Entry, PL0/PL1/PL2/PL3 ESSD, ESSD AutoPL disk |
| Standart SSD | PL1/PL2/PL3 ESSD, ESSD AutoPL disk |
| PL0 ESSD | PL1/PL2/PL3 ESSD, ESSD AutoPL disk |
| PL1/PL2/PL3 ESSD (kullandıkça öde) | PL1, PL2 ve PL3 arasında geçiş yapın veya ESSD AutoPL diske dönüştürün |
| PL1/PL2/PL3 ESSD (abonelik) | Yalnızca yükseltme (düşükten yükseğe): PL1→PL2, PL1→PL3, PL2→PL3; PL1→ESSD AutoPL disk |
Kullanım notları:
Yalnızca ESSD Entry diskler genel amaçlı örnek ailelerine ve e ekonomi örnek ailesine ait örneklere bağlanabilir.
Bir ESSD'nin yükseltilebileceği performans düzeyi disk kapasitesine bağlıdır. Daha yüksek bir performans düzeyi kullanılamıyorsa öncelikle diski genişletin, ardından performans düzeyini yükseltin.
Bir diski PL3 ESSD olarak değiştirdikten sonra en iyi performansı etkinleştirmek için diski bir örneğe bağlayın veya örneği yeniden başlatın. Bu süreçte veri güvenilirliği etkilenmez.
Disk kategorisi değişiminden sonra faturalama, yeni disk kategorisinin kurallarına göre yapılır.
ESSD AutoPL diske geçiş yaparken veya bu diskten geçiş yaparken: Değişiklik sonrası performans sağlama özelliğini etkinleştirebilir veya devre dışı bırakabilirsiniz (etkinleştirildiğinde ek ücret uygulanır — detaylar için ESSD AutoPL diskin sağlanan performansını değiştirme). Performans patlaması değişiklik sırasında yapılandırılamaz ancak işlem tamamlandıktan sonra etkinleştirilebilir veya devre dışı bırakılabilir — detaylar için ESSD AutoPL disk için performans patlamasını etkinleştirme veya devre dışı bırakma.
desiredDiskType parametre referansı
2. adımda özel kaynağı oluştururken desiredDiskType parametresi için aşağıdaki değerleri kullanın.
| Değer | Disk kategorisi |
|---|---|
cloud_ssd |
Standart SSD |
cloud_essd.PL0 |
PL0 ESSD |
cloud_essd.PL1 |
PL1 ESSD |
cloud_essd.PL2 |
PL2 ESSD |
cloud_essd.PL3 |
PL3 ESSD |
cloud_auto |
ESSD AutoPL disk |
1. Adım: storage-operator'da disk kategorisi değişikliklerini etkinleştirin
storage-operator ConfigMap'ini güncellemek ve disk kategorisi değiştirme özelliğini etkinleştirmek için aşağıdaki komutu çalıştırın. Bu özellik storage-controller eklentisi tarafından uygulanır.
kubectl patch configmap/storage-operator \
-n kube-system \
--type merge \
-p '{"data":{"storage-controller":"{\"imageRep\":\"acs/storage-controller\",\"imageTag\":\"\",\"install\":\"true\",\"template\":\"/acs/templates/storage-controller/install.yaml\",\"type\":\"deployment\"}"}}'
2. Adım: Disk kategorisini değiştirin
İş yükleriniz üzerindeki etkiyi en aza indirmek için disk kategorisi değişikliklerini yoğun olmayan saatlerde gerçekleştirin.
1. StatefulSet oluşturun
Kümenizde zaten mount edilmiş bir cloud disk içeren bir StatefulSet varsa bu adımı atlayın.
Aşağıdaki şablonu kullanarak StatefulSet.yaml adlı bir dosya oluşturun. Bu işlem, 40 GiB boyutunda PL1 ESSD bağlanmış tek bir pod içeren bir StatefulSet oluşturur.
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: nginx-diskspec
spec:
selector:
matchLabels:
app: nginx
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
ports:
- containerPort: 80
volumeMounts:
- name: pvc-disk
mountPath: /data
volumes:
- name: pvc-disk
persistentVolumeClaim:
claimName: disk-pvc
volumeClaimTemplates:
- metadata:
name: pvc-disk
labels:
app: nginx
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "alicloud-disk-essd"
resources:
requests:
storage: 40Gi
Manifesto dosyasını uygulayın ve pod'un çalıştığını doğrulayın:
kubectl create -f StatefulSet.yaml
kubectl get pod -l app=nginx
Beklenen çıktı:
NAME READY STATUS RESTARTS AGE
nginx-diskspec-0 1/1 Running 0 4m4s
2. Değiştirilecek PersistentVolume (PV) öğesini belirleyin
StatefulSet tarafından kullanılan PersistentVolumeClaim (PVC) öğesini alın ve VOLUME sütunundaki bağlı PV adını not edin.
kubectl get pvc pvc-disk-nginx-diskspec-0
Beklenen çıktı:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
pvc-disk-nginx-diskspec-0 Bound d-uf6ijdcp3aeoi82w**** 40Gi RWO alicloud-disk-essd <unset> 5m6s
PV'nin mevcut disk kategorisini doğrulayın:
kubectl get pv d-uf6ijdcp3aeoi82w**** -o=jsonpath='{.metadata.labels}'
Beklenen çıktı — cloud_essd.PL1 değeri, PV'nin bir PL1 ESSD tarafından desteklendiğini gösterir:
{"csi.alibabacloud.com/disktype":"cloud_essd.PL1"}
3. Kategori değişikliğini tetiklemek için özel bir kaynak oluşturun
cr.yaml adlı bir dosya oluşturun. pvNames değerini önceki adımdaki PV adı ile değiştirin ve desiredDiskType değerini hedef disk kategorisine ayarlayın (yukarıdaki desiredDiskType parametre referansına bakın).
apiVersion: storage.alibabacloud.com/v1beta1
kind: ContainerStorageOperator
metadata:
name: default
spec:
operationType: DISKUPGRADE
operationParams:
pvNames: "d-uf6ijdcp3aeoi82w****"
desiredDiskType: "cloud_auto"
| Parametre | Açıklama |
|---|---|
operationType |
Disk yükseltme veya düşürme işlemleri için DISKUPGRADE olarak ayarlayın. |
pvNames |
Değiştirilecek PV. Birden fazla PV'yi virgülle ayırın, örneğin: "disk-1,disk-2,disk-3***". |
desiredDiskType |
Hedef disk kategorisi. Yukarıdaki desiredDiskType parametre referansına bakın. |
Özel kaynağı uygulayın:
kubectl create -f cr.yaml
4. Disk kategorisi değişikliğini doğrulayın
Disk kategorisi değişikliğinin tamamlanıp tamamlanmadığını kontrol etmek için özel kaynak durumunu sorgulayın:
kubectl get ContainerStorageOperator default -o yaml
Değişiklik tamamlandığında beklenen çıktı:
status:
message: []
process: 100%
status: SUCCESS
PV etiketinin yeni disk kategorisini yansıttığını doğrulayın:
kubectl get pv d-uf6ijdcp3aeoi82w**** -o=jsonpath='{.metadata.labels}'
Beklenen çıktı:
{"csi.alibabacloud.com/disktype":"cloud_auto"}