Kümeniz 1,16'dan önceki bir Kubernetes sürümü çalıştırıyorsa veya temel diskler kullanıyorsa, kalıcı birim talebini (PVC) güncelleyerek disk birimini genişletemezsiniz. Bunun yerine, alttaki diski ve dosya sistemini doğrudan genişletmeniz gerekir.
Kapsam
Bu konu, PVC'yi değiştirmeden alttaki diski manuel olarak genişleterek disk biriminin nasıl genişletileceğini açıklar. Kümeniz 1,16'dan önceki bir Kubernetes sürümü çalıştırıyorsa veya disk biriminin çevrimiçi genişletilmesi gereksinimlerini karşılamıyorsa bu yöntemi kullanabilirsiniz.
Bu yöntemle diski ECS konsolunda genişletirsiniz. Bu işlem küme içindeki kaynakları etkilemez; dolayısıyla kalıcı birim talebi (PVC) ve kalıcı birim (PV) nesnelerinin kapasitesi değişmez. Kümede görüntülenen PV ve PVC kapasitelerinin gerçek kapasiteyle tutarlı olmasını sağlamak için disk biriminin çevrimiçi genişletilmesini kullanmanızı öneririz.
İş ihtiyaçlarınıza göre bir yöntem seçin.
Çevrimiçi genişletme: Uygulama çalışmaya devam eder. Ancak, dosya sistemi genişletme sırasında G/Ç trafiği yüksekse G/Ç hataları oluşabilir.
Çevrimdışı genişletme: Bu işlem uygulamayı ve disk G/Ç işlemlerini duraklatır. Sonuç olarak, dosya sistemi genişletme verileriniz için daha güvenlidir ancak uygulama belirli bir süre duraklatılır.
Temel diskler çevrimiçi genişletmeyi desteklemez. Çevrimdışı genişletme kullanmanız gerekir.
Aşağıdaki bölümlerde, disk biriminin nasıl genişletileceğini göstermek amacıyla statik olarak sağlanan disk birimi kullanan örnek bir uygulama ele alınmıştır.
Çevrimiçi genişletme
Uygulama çalışırken diski ECS konsolunda genişletin.
1. Adım: Disk bilgilerini görüntüleme
Kümenize bağlanın. Daha fazla bilgi için bkz. Kümenin kubeconfig dosyasını alma ve kubectl kullanarak kümeye bağlanma veya Workbench veya CloudShell'den kubectl kullanarak Kubernetes kümesine bağlanma.
-
Diski bağlayan pod'u görüntüleyin ve pod'un Çalışıyor (Running) durumunda olduğunu onaylayın.
kubectl get podÖrnek çıktı:
NAME READY STATUS RESTARTS AGE disk-test-0 1/1 Running 0 38s -
Disk kimliğini almak için PVC'yi görüntüleyin.
kubectl get pvcAşağıdaki çıktıda, PVC'ye bağlı PV'nin
d-uf628m33r5rsbi******(disk kimliği) olduğu ve kapasitenin 20 GiB olduğu gösterilmektedir.NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE disk-pvc Bound d-uf628m33r5rsbi****** 20Gi RWO disk <unset> 64s
2. Adım: Diski ve dosya sistemini genişletme
ECS konsoluna giriş yapın.
-
Sol gezinme bölmesinde seçeneğini belirleyin.
Sayfanın sol üst köşesinde bir bölge ve kaynak grubu seçin.
-
Diski kimliğine göre bulun, diski seçin ve ardından sayfanın alt kısmında yer alan Scale-out seçeneğine tıklayın.
Diskin nasıl genişletileceği hakkında daha fazla bilgi için bkz. Disk genişletme (Linux) .
-
Görüntülenen sihirbazda, ekrandaki talimatları izleyerek genişletme işlemini tamamlayın.
Determine Disk and Read Notes sayfasında disk bilgilerini onaylayın, notları okuyun ve ardından I Understand Risks and Have Backed Up Data, Proceed seçeneğine tıklayın.
-
Configure Resizing Method and New Size sayfasında genişletme parametrelerini ayarlayın ve Scale-out seçeneğine tıklayın.
Parameter
Description
Example
New disk size
Diske genişletmek istediğiniz kapasiteyi belirtin. Yeni kapasite mevcut kapasiteden küçük olamaz.
30 GiB
Resizing methodOnline Resizing seçeneğini belirleyin. Yeniden başlatmaya gerek kalmadan yeni kapasite hemen etkinleşir.
Online Resizing -
Confirm Resizing Results sayfasında diskin genişletildiğini onaylayın ve ardından Next Step: Extend Partitions and File Systems seçeneğine tıklayın.
NotDiski genişlettikten sonra dosya sistemini de genişletmeniz gerekir. Aksi takdirde konteynerdeki depolama alanı orijinal boyutta kalır.
-
Extend the partitions and file systems of disks sayfasında Use Cloud Assistant seçeneğini belirleyin, Authorize Cloud Assistant to Perform This Operation seçeneğini işaretleyin ve ardından Authorization seçeneğine tıklayın.
İşlem tamamlandıktan sonra hem diskin hem de dosya sisteminin genişletildiğini onaylayın.
Genişletme başarılı olduğunda disk kontrolü sayfasında yeşil bir onay işareti ve The disk check is complete. The disk is ready for use. mesajı görüntülenir. Disk information in the operating system bölümünde Disk capacity (OS) değerinin Capacity değeriyle eşleştiğini doğrulayın. Bölüm ayrıntılarında bölümün boyutunun (örneğin
/dev/vdb) toplam disk kapasitesine eşit olduğunu kontrol edin. Bu, hem bölümün hem de dosya sisteminin başarıyla genişletildiğini gösterir.
Çevrimdışı genişletme
Yine sayısını 0'a ayarlayarak uygulamayı duraklatın, diski genişletin ve ardından uygulamayı yeniden başlatın.
1. Adım: Disk bilgilerini görüntüleme ve uygulamayı duraklatma
Kümenize bağlanın. Daha fazla bilgi için bkz. Kümenin kubeconfig dosyasını alma ve kubectl kullanarak kümeye bağlanma veya Workbench veya CloudShell'den kubectl kullanarak Kubernetes kümesine bağlanma.
-
Diski bağlayan pod'u görüntüleyin ve pod'un Çalışıyor (Running) durumunda olduğunu onaylayın.
kubectl get podÖrnek çıktı:
NAME READY STATUS RESTARTS AGE disk-test-0 1/1 Running 0 38s -
Disk kimliğini almak için PVC'yi görüntüleyin.
kubectl get pvcAşağıdaki çıktıda, PVC'ye bağlı PV'nin
d-uf628m33r5rsbi******(disk kimliği) olduğu ve kapasitenin 20 GiB olduğu gösterilmektedir.NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE disk-pvc Bound d-uf628m33r5rsbi****** 20Gi RWO disk <unset> 64s -
Uygulamayı duraklatmak için uygulamayı 0 yinelemeye ölçeklendirin.
kubectl scale sts disk-test --replicas=0Beklenen çıktı:
statefulset.apps/disk-test scaled
2. Adım: Diski genişletme
ECS konsoluna giriş yapın.
-
Sol gezinme bölmesinde seçeneğini belirleyin.
Sayfanın sol üst köşesinde bir bölge ve kaynak grubu seçin.
Diski kimliğine göre bulun, diski seçin ve ardından sayfanın alt kısmında yer alan Scale-out seçeneğine tıklayın.
-
Görüntülenen sihirbazda, ekrandaki talimatları izleyerek genişletme işlemini tamamlayın.
Determine Disk and Read Notes sayfasında disk bilgilerini onaylayın, notları okuyun ve ardından I Understand Risks and Have Backed Up Data, Proceed seçeneğine tıklayın.
-
Configure Resizing Method and New Size sayfasında genişletme parametrelerini ayarlayın ve Scale-out seçeneğine tıklayın.
Parameter
Description
Example
New disk size
Diske genişletmek istediğiniz kapasiteyi belirtin. Yeni kapasite mevcut kapasiteden küçük olamaz.
30 GiB
Resizing method
Uygulamayı duraklattıktan sonra disk Unattached durumunda olur. Bu durumda yalnızca Offline Resizing seçeneği kullanılabilir.
Offline Resizing Confirm Resizing Results sayfasında diskin genişletildiğini onaylayın ve ardından Next Step: Extend Partitions and File Systems seçeneğine tıklayın.
-
Extend the partitions and file systems of disks sayfasında Use Documentation seçeneğini belirleyin ve Extend the partitions and file systems of disks on a Linux instance bölümündeki belgeleri görüntüleyin.
NotDiski genişlettikten sonra dosya sistemini de genişletmeniz gerekir. Aksi takdirde konteynerdeki depolama alanı orijinal boyutta kalır.
Disk Unattached durumunda olduğundan Cloud Assistant kullanamazsınız. Dosya sistemini manuel olarak genişletmeniz gerekir.
3. Adım: Dosya sistemini genişletme
Aşağıdaki adımlar bölümlendirilmemiş diskler için geçerlidir.
Kubernetes'te bölümlendirilmiş diskler kullanmamanızı öneririz.
Bir PV bölümlendirilmemiş bir disk kullanıyorsa bunu manuel olarak bölümlendirmeyin. Aksi takdirde dosya sistemine zarar verebilir ve veri kaybı yaşayabilirsiniz.
Bir PV bölümlendirilmiş bir disk kullanıyorsa dosya sistemini genişletmeden önce bölüm aygıtını genişletmeniz gerekir. Daha fazla bilgi için bkz. Linux örneğinde disk bölümlerini ve dosya sistemlerini genişletme veya Windows örneğinde disk bölümlerini ve dosya sistemlerini genişletme.
-
Diski bir ECS örneğine ekleyin.
ECS konsolundaki EBS sayfasında hedef diski bulun ve İşlemler sütununda Attach seçeneğine tıklayın.
-
Attach to Instance sihirbazında hedef ECS örneğini seçin ve Next seçeneğine tıklayın.
ÖnemliDiskin otomatik olarak serbest bırakılmasını sağlayan hiçbir seçeneği işaretlemeyin.
Partition Disk and Create and Mount File Systems sihirbazında Başlatma Yöntemi bölümünde Configure Later seçeneğine tıklayın.
Disk durumunun In Use olarak değiştiğini onaylayın.
ECS örneğine bağlanın. Daha fazla bilgi için bkz. Bağlantı yöntemleri.
-
Diskin aygıt adını edinin.
<serial>ifadesini diskinizin seri numarasıyla değiştirin.Disk seri numarası, d-{disk seri numarası} biçimindeki disk kimliğinin bir parçasıdır. Daha fazla bilgi için bkz. Blok depolama aygıtının seri numarasını görüntüleme.
Önemli10 Haziran 2020 tarihinden önce oluşturulan disklerin seri numarası yoktur. Bu diskler için realpath komutunu kullanarak aygıt adını bulamazsınız. Bunun yerine, diski eklemeden önce ve sonra
ls /dev/vd*komutunu çalıştırın ve yeni aygıt adını belirlemek için çıktıları karşılaştırın.realpath /dev/disk/by-id/virtio-<serial>Aşağıdaki örnek çıktı, diskin aygıt adının
/dev/vdbolduğunu göstermektedir./dev/vdb -
Dosya sistemini genişletin.
/dev/vdb ifadesini diskinizin gerçek aygıt adıyla değiştirin.
resize2fs /dev/vdbAşağıdaki hatayı görürseniz istendiği gibi
e2fsck -f /dev/vdbkomutunu çalıştırın ve ardından dosya sistemini genişletmek içinresize2fs /dev/vdbkomutunu tekrar çalıştırın.resize2fs 1.46.0 (29-Jan-2020) Please run 'e2fsck -f /dev/vdb' first.Dosya sistemi başarıyla genişletildikten sonra aşağıdaki çıktı döndürülür:
resize2fs 1.46.0 (29-Jan-2020) Resizing the filesystem on /dev/vdb to 7864320 (4k) blocks. The filesystem on /dev/vdb is now 7864320 (4k) blocks long. -
Dosya sisteminin genişletildiğini onaylayın.
-
Geçici bir dizin
/mnt/disk/oluşturun ve diski bu dizine bağlayın.mkdir /mnt/disk mount /dev/vdb /mnt/disk/ -
Dosya sistemi boyutunu kontrol edin.
df /mnt/disk/Aşağıdaki örnek çıktı,
/dev/vdbkapasitesinin 30 GiB'e genişletildiğini göstermektedir.Filesystem 1K-blocks Used Available Use% Mounted on /dev/vdb 30787536 24 30771128 1% /mnt/disk -
Diski geçici dizinden ayırın.
umount /mnt/disk
-
Veri diskini ECS örneğinden ayırın. Daha fazla bilgi için bkz. Veri diskini ayırma.
4. Adım: Uygulamayı yeniden başlatma
-
Uygulamayı yeniden başlatmak için uygulamayı 1 yinelemeye ölçeklendirin.
kubectl scale sts disk-test --replicas=1Beklenen çıktı:
statefulset.apps/disk-test scaled -
Pod'un geri yüklendiğini onaylayın.
kubectl get podBeklenen çıktı:
NAME READY STATUS RESTARTS AGE disk-test-0 1/1 Running 0 5s -
Dosya sistemi boyutunu kontrol edin.
kubectl exec -it disk-test-0 -- df /dataAşağıdaki örnek çıktı, bağlanan dosya sisteminin başarıyla genişletildiğini göstermektedir.
Filesystem 1K-blocks Used Available Use% Mounted on /dev/vdb 30787536 24 30771128 1% /data