Bir kümenin kontrol düzlemini yükselttikten sonra, düğüm havuzlarını yoğun olmayan saatlerde derhal yükseltin. ACK, kubelet ve konteyner çalışma zamanını güncellemeden önce riskleri kontrol ederek kesintileri en aza indirmeye yardımcı olur.
Dikkat edilmesi gerekenler
-
Hazırlıklar
Küme yükseltmeleri, gerekli yazılım paketlerini indirmek için yum kullanır. Düğüm ağ yapılandırmalarını manuel olarak değiştirdiyseniz veya özel bir işletim sistemi (OS) görüntüsü kullandıysanız, yum'un düğümlerinizde doğru çalıştığından emin olun. Doğrulamak için
yum makecachekomutunu çalıştırın.ACK, özel işletim sistemi görüntülerini tamamen doğrulamaz ve bunların yükseltilebileceğini garanti edemez.
Küme yapılandırmalarını değiştirdiyseniz (örneğin takası etkinleştirdiyseniz veya bir düğüme oturum açmak gibi ürüne entegre edilmemiş yöntemler kullanarak kubelet veya çalışma zamanı yapılandırmalarını değiştirdiyseniz), küme yükseltmesi başarısız olabilir veya özel yapılandırmalarınızın üzerine yazabilir. Daha fazla bilgi için bkz. Düğüm havuzu kubelet yapılandırmalarını özelleştirme.
Bir kümeyi 1,18 sürümüne yükselttikten sonra, ACK varsayılan olarak Düğüm kaynak ayırma ilkesini yapılandırır. Kaynak ayırma yapılandırılmamışsa ve düğüm kaynak kullanımı yüksekse, tahliye edilen pod'lar zamanında planlanmayabilir. Düğümleriniz için kaynak ayırın. CPU kullanımını %50'nin altında veya eşitinde, bellek kullanımını ise %70'in altında veya eşitinde tutun.
1,24 veya daha önceki sürümleri çalıştıran kümelerde, yalnızca bir başlangıç probu ile yapılandırılmış pod'lar kubelet yeniden başlatıldıktan sonra kısa süreliğine NotReady durumuna girer. Bir düğüm yeniden başlatma sırasında yeterli sayıda pod'un kullanılabilir kalmasını sağlamak için iş yüklerini düğümler arasında birden fazla çoğaltma ile dağıtın.
Disk alanınızın en az %20'sini boş bırakın. Bu, yükseltme sırasında yetersiz disk kapasitesinden kaynaklanan pod tahliyesini önler.
-
Düğüm havuzu yükseltme kısıtlamaları
Düğüm havuzu yükseltmeleri yalnızca ölçek genişletme işlemlerini destekler. Ölçek daraltma işlemleri desteklenmez.
Bir düğüm havuzuna ait olmayan yönetilmeyen çalışan düğümleriniz varsa, bunları taşıyın. Daha fazla bilgi için bkz. Yönetilmeyen düğümleri bir düğüm havuzuna taşıma.
Disk değiştirme yükseltmesi sırasında ACK, oturum açma yöntemi, etiketler, toleranslar, işletim sistemi görüntüsü ve çalışma zamanı sürümü dahil olmak üzere mevcut düğüm havuzu yapılandırmasına göre düğümleri yeniden başlatır. Düğüm havuzu yapılandırmasını Bir düğüm havuzunu düzenleme bölümünde açıklandığı gibi güncelleyin. Diğer yöntemlerle yapılan değişiklikler yükseltme sırasında üzerine yazılır.
Bir düğümdeki bir pod, sistem diskine işaret eden bir HostPath'e başvuruyorsa, disk değiştirme yükseltmesinden sonra HostPath dizinindeki veriler kaybolur.
1,31 veya daha önceki bir sürümü çalıştıran bir kümedeki bir düğüm havuzunu yükselttiğinizde, bu işlem NVIDIA Device Plugin'i de yükseltir ve standart olmayan tüm yapılandırmalarını sıfırlar.
-
düğüm ölçeklendirme ve planlama
Düğüm ölçeklendirme etkinleştirilmişse, ACK küme yükseltmesinden sonra ölçeklendirmenin kullanılabilir kalmasını sağlamak için cluster-autoscaler öğesini otomatik olarak en son sürüme günceller. cluster-autoscaler öğesinin güncellendiğini doğrulayın. Daha fazla bilgi için bkz. Düğüm otomatik ölçeklendirmeyi etkinleştirme.
Küme yükseltmesi sırasında, Scaling Mode seçeneği Swift olarak ayarlanmış düğümler kapatıldıkları için yükseltilemeyebilir. Swift etkinleştirildiği için yükseltilmemiş düğümler kalırsa, bunları manuel olarak kaldırın.
-
Ağ ve hizmet kullanılabilirliği
Bir pod, aynı düğümdeki başka bir poda bir
LoadBalancerHizmetinin SLB adresi üzerinden erişiyorsa veexternalTrafficPolicydeğeriLocalolarak ayarlanmışsa, düğüm rotasyonu pod'ları farklı düğümlere yerleştirebilir. Bu durum bağlantıyı kesebilir.-
Disk değiştirme yükseltmesi sırasında ACK, Pod Kesinti Bütçesi (PDB) ilkelerine uyarak düğümleri boşaltır ve pod'ları diğer kullanılabilir düğümlere tahliye eder. Yüksek kullanılabilirliği sağlamak için iş yüklerini düğümler arasında birden fazla çoğaltma ile dağıtın ve eşzamanlı pod kesintilerini sınırlamak için kritik hizmetler için bir PDB yapılandırın.
Bir düğümün boşaltılması için varsayılan zaman aşımı 30 dakikadır. Pod taşıma bu süre içinde tamamlanmazsa, ACK hizmet kararlılığını korumak için yükseltmeyi sonlandırır.
Özellikler
Bir düğüm havuzu yükseltmesi aşağıdaki işlemleri sağlar:
Kubelet yükseltmesi: Her düğümdeki kubelet'i kontrol düzlemi sürümüne yükseltir. Varsayılan olarak yerinde yükseltme kullanılır.
-
Konteyner çalışma zamanı yükseltmesi: Daha yeni bir çalışma zamanı sürümü mevcut olduğunda düğümlerdeki konteyner çalışma zamanını yükseltir.
Docker'dan containerd'ye geçiş, her düğümdeki sistem diskini değiştiren ve üzerindeki tüm verileri silen bir disk değiştirme yükseltmesi gerçekleştirir. Yükseltmeden önce kritik sistem diski verilerini yedekleyin. Daha fazla bilgi için bkz. Düğüm konteyner çalışma zamanını Docker'dan containerd'ye taşıma.
-
ContainerOS düğümleri hariç, containerd'yi daha yeni bir sürüme yükseltmek varsayılan olarak yerinde yükseltme kullanır. ACK, her düğümdeki
/etc/containerd/config.tomldosyasını ACK tarafından sağlanan sürümle değiştirir.ÖnemliContainerOS düğümleri yerinde containerd yükseltmelerini desteklemez. Disk değiştirme yükseltmesi kullanın. Daha fazla bilgi için bkz. 3,4'ten önceki ContainerOS sürümlerini en son sürüme yükseltme.
Konteyner çalışma zamanı yükseltmesi sırasında Pod probları ve yaşam döngüsü kanca işlevleri başarısız olabilir ve Pod'lar yerinde yeniden başlatılabilir.
Kubernetes 1,24'ten önceki sürümleri çalıştıran kümelerde, Docker'ı yükseltmek varsayılan olarak bir disk değiştirme yükseltmesi kullanır ve tüm sistem diski verilerini siler. Yükseltmeden önce kritik sistem diski verilerini yedekleyin.
Yordam
ACK konsolunda oturum açın. Sol gezinme bölmesinde Clusters öğesine tıklayın.
Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde öğesine tıklayın.
-
Node Pools sayfasında hedef düğüm havuzunu bulun, Actions sütunundaki
simgesine tıklayın ve Kubelet Update öğesini seçin. Aşağıdaki parametreleri yapılandırın.Parametre
Açıklama
Kubelet Update Information
Mevcut kubelet sürümünü görüntüleyin ve hedef sürümü seçin.
Runtime Update Information
Mevcut konteyner çalışma zamanı sürümünü görüntüleyin ve hedef sürümü seçin.
Docker'dan containerd'ye geçiş, her düğümdeki sistem diskini değiştiren ve üzerindeki tüm verileri silen bir disk değiştirme yükseltmesi gerçekleştirir. Daha fazla bilgi için bkz. Düğüm konteyner çalışma zamanını Docker'dan containerd'ye taşıma.
Kubernetes 1,22 çalıştıran ve containerd 1,6,34 yüklü olan kümeler çalışma zamanı yükseltmelerini desteklemez.
Update Nodes
Yükseltilecek düğümleri seçin: tümü veya belirli olanlar.
Yükseltme yöntemi
In-place Upgrade veya Upgrade by Replacing System Disk seçeneğini belirleyin. Bkz. Referans: Yerinde ve disk değiştirme yükseltmeleri.
In-place Upgrade: ACK, gerekli bileşenleri doğrudan mevcut düğümlerde günceller. Yerinde yükseltme sistem diskini değiştirmez veya düğümü yeniden başlatmaz ve düğümdeki veriler korunur.
Upgrade by Replacing System Disk: ACK, sistem diskini değiştirerek düğümleri yeniden başlatır. Ad, ID ve IP adresi gibi örnek nitelikleri değişmez ancak sistem diski verileri silinir. Ekli veri diskleri etkilenmez.
Ignore Warnings
Ön denetim uyarı bildirirse devam edilip edilmeyeceği. Örneğin, bir pod sistem diskine işaret eden bir
hostPathkullanıyor olabilir.Batch Update Policy
Maximum Number of Nodes per Batch
Düğümler, bu maksimum değere kadar partiler halinde yükseltilir. Bkz. Referans: Yerinde ve disk değiştirme yükseltmeleri.
Automatic Pause Policy
Yükseltmenin ne zaman otomatik olarak duraklatılacağını belirtir.
Interval Between Batches
Otomatik duraklatmalar devre dışı bırakıldığında partiler arasındaki aralığı ayarlar. Geçerli değerler: 5 ila 120 dakika.
Auto Snapshot
Bir düğümün sistem diskindeki önemli iş verilerini yedeklemek ve geri yüklemek için, düğüm havuzunu yükseltmeden önce anlık görüntüler oluşturun. Anlık görüntüler ücretlendirilir (bkz. Anlık görüntü faturalandırması) ve oluşturma ilerlemeleri dinamik olarak değişir. Yükseltmeden sonra gerekmediğinde anlık görüntüleri silin.
NotDisk değiştirme yükseltmesi için otomatik anlık görüntü oluşturmayı etkinleştirmeyi düşünün. Anlık görüntü ücretleri uygulanır. Faturalandırma ayrıntıları için bkz. Anlık görüntü faturalandırması.
-
Parametreleri yapılandırdıktan sonra Precheck öğesine tıklayın. Ön denetim başarılı olursa ekrandaki talimatları izleyerek yükseltmeyi başlatın.
NotÖn denetim başarısız olursa veya uyarı döndürürse sorun gidermek için Başarısız denetim öğeleri için düzeltmeler bölümüne bakın veya Denetim Raporunu görüntüleyin.
Yükseltme sırasında aşağıdaki eylemler kullanılabilir:
-
Pause: Düğüm havuzunu ara bir duruma getirir. Diğer küme işlemlerinden kaçının ve yükseltmeyi hızla tamamlayın. Yedi günden fazla süreyle duraklatılan yükseltmeler otomatik olarak sonlandırılır ve ilgili olaylar ile günlükler temizlenir.
Yükseltilmiş düğümlerdeki kubelet ve konteyner çalışma zamanı sürümleri geri alınamaz.
Cancel: Yükseltmeyi iptal eder. Cancel öğesine tıkladıktan sonra, yükseltilmiş düğümlerdeki kubelet ve konteyner çalışma zamanı sürümleri geri alınamaz.
Yükseltmeyi doğrulamak için Nodes sayfasına gidin, bir düğüm adına tıklayın ve Basic Information sekmesindeki kubelet ve konteyner çalışma zamanı sürümlerinin beklendiği gibi olduğunu doğrulayın.
-
Referans: Yerinde ve disk değiştirme yükseltmeleri
Yükseltme süreçleri
Yerinde ve disk değiştirme yükseltmeleri aynı parti sürecini kullanır. ACK önce her düğümde yükseltme öncesi denetim çalıştırır. Başarısız olan düğümler atlanır ve geçen düğümler Maximum Parallel Nodes per Batch değerine göre partiler halinde yükseltilir. Her parti, yapılandırılan maksimum değeri aşmaz ve mevcut parti tamamlandıktan sonra sonraki parti başlar.
Örneğin, maksimum değer 2 ise ACK her partide en fazla iki düğümü yükseltir. Maksimum değer 100 ise ACK her partide en fazla 100 düğümü yükseltir. Geçerli değerler 1 ile 100 arasındadır.
Aşağıdaki şekilde maksimum değerin 1, 2 veya N olarak ayarlandığı yükseltmeler gösterilmektedir. Her parti sırasıyla 1, 2 veya N düğümü yükseltir.
Yerinde yükseltme mantığı
Yükseltme öncesi denetim yapın. Bir konteynerde kritik bir istisna bulunursa (örneğin, ttrpc istekleri yanıtlanamıyorsa veya konteyner işlemleri sinyallere yanıt vermiyorsa) yükseltme durdurulur.
Konteynerlerin ve pod'ların mevcut durumunu geçici bir dizine kaydedin.
containerd, crictl ve ilgili yapılandırma dosyalarını ACK tarafından sağlanan sürümlere yükseltin ve containerd'yi yeniden başlatın. Çalışan konteynerler etkilenmez. Düğümde
/etc/containerd/config.tomldosyasını değiştirdiyseniz, yükseltme değişikliklerinizi üzerine yazar.kubelet'in düzgün çalıştığından ve düğümün hazır olduğundan emin olun.
Disk değiştirme yükseltme mantığı
Düğüm boşaltma işlemini gerçekleştirin. Düğüm planlanabilir durumdaysa sistem bunu planlanamaz duruma getirir.
ECS örneğini kapatın; bu işlem düğümü durdurur.
Sistem diskini değiştirin. Sistem diski kimliği değişir ancak cloud disk türü, örnek IP adresi ve elastik ağ arayüzü MAC adresi aynı kalır.
Düğümü yeniden başlatın.
-
Düğümü yeniden başlatın. Düğüm hazır hale gelir ve planlanabilir duruma ayarlanır.
Bir düğüm yükseltmeden önce planlanamaz durumdaysa, sonrasında da planlanamaz durumda kalır.
SSS
Yükseltme sonrası geri alma
Yükseltmeden sonra kubelet ve konteyner çalışma zamanı sürümleri geri alınamaz. İşletim sistemi yalnızca düğüm havuzu orijinal görüntüyü destekliyorsa geri alınabilir.
Yükseltme sırasında hizmet etkisi
Yerinde yükseltme: Pod'lar yeniden başlatılmaz, bu nedenle hizmetler etkilenmez.
Disk değiştirme yükseltmesi: ACK her düğümü boşaltır. Pod'lar sorunsuz kapatma uygularsa (bkz. Kubernetes'te Sorunsuz Kapatma ve Sıfır Kesinti Dağıtımları) ve çoğaltmalar birden fazla düğümde çalışıyorsa hizmetler kullanılabilir kalır. Aynı partide birden fazla çoğaltmanın yükseltilmesini önlemek için eşzamanlı yükseltme sayısını Pod çoğaltma sayısından daha düşük ayarlayın.
Yükseltme partisi süresi
Yerinde yükseltme: 5 dakika içinde.
Disk değiştirme yükseltmesi: Anlık görüntü oluşturulmazsa genellikle 8 dakika içinde. Anlık görüntüler etkinleştirilirse yükseltme, anlık görüntü oluşturulduktan sonra başlar ve süre anlık görüntü oluşturma zamanına bağlıdır. ACK, anlık görüntü oluşturma için en fazla 40 dakika bekler. Anlık görüntü 40 dakika içinde tamamlanmazsa, o düğümde yükseltme işlemleri başlamadan önce düğüm yükseltmesi zaman aşımına uğrar. Sistem diskine iş verileri depolamıyorsanız, yükseltmeyi uzatmamak için anlık görüntü oluşturmayı atlayabilirsiniz.
Yükseltme sırasında veri kaybı
Konteyner çalışma zamanını sistem diskini değiştirerek yükseltirken, önceden tüm önemli sistem diski verilerini yedekleyin. Veri diskleri etkilenmez.
Değiştirme sonrası IP adresi değişiklikleri
Sistem diski değiştirildiğinde kimliği değişir ancak cloud disk türü, örnek IP adresi ve elastik ağ arayüzü MAC adresi aynı kalır. Bkz. Sistem diskini değiştirme (işletim sistemini değiştirme).
Yönetilmeyen düğümlerin yükseltilmesi
Düğüm havuzları tanıtılmadan önce oluşturulan kümelerde yönetilmeyen düğümler bulunabilir. Bunları yükseltmeden önce bir düğüm havuzuna taşıyın. Daha fazla bilgi için bkz. Yönetilmeyen düğümleri bir düğüm havuzuna taşıma.
Taşıma sonrası kalan Docker dizini
Docker dizini, Kubernetes tarafından yönetilen dosyaları (konteynerler, görüntüler, günlükler) ve oluşturduğunuz özel yolları içerir. Çalışma zamanlarını değiştirdikten sonra artık gerekmiyorsa veri diskinden silin.
Anlık görüntülerden veri geri yükleme
Bir düğüm havuzu yükseltmesi sırasında oluşturulan düğüm anlık görüntüleri varsayılan olarak yedi gün boyunca saklanır ve daha erken silinebilir. Yükseltme sonrası veri kaybından kurtulmak için aşağıdaki yöntemlerden birini kullanın.
Yalnızca kubelet yükseltmesi gibi yerinde bir yükseltme için, verileri anlık görüntüyü geri alarak restore edin. Bkz. Anlık görüntü kullanarak cloud diski geri alma.
İşletim sistemi veya konteyner çalışma zamanı yükseltmesi gibi disk değiştirme yükseltmesi için, verileri anlık görüntüden cloud disk oluşturarak restore edin. Bkz. Anlık görüntüden veri diski oluşturma.
Negatif dentry sorununu çözme
Kubelet veya containerd yükseltmesi systemctl daemon-reload komutunu çalıştırır. systemd daha sonra .path birimleriyle ilişkili dizinleri ve bunların üst dizinlerini izlemek için inotify kullanır; varsayılan olarak /, /run ve /run/systemd dizinleri dahildir. Bu dizinlerdeki çok sayıda inode, çekirdek soft lockup hatasına neden olabilir ve düğümü bozabilir.
Bu dizinlerdeki inode sayıları doğrudan alınamadığından, yoğun olmayan saatlerde aşağıdaki komutu çalıştırarak dentry'leri temizleyin:
echo 2 > /proc/sys/vm/drop_caches
.path birimleriyle ilişkili dizinlerin ve bunların üst dizinlerinin çok sayıda inode içermediğini onaylarsanız denetimi atlamak için Uyarıları Yoksay seçeneğini belirleyin.
Referanslar
Bakım yükünü azaltmak için otomatik küme yükseltmelerini etkinleştirin.
containerd sürüm geçmişini görmek için bkz. containerd çalışma zamanı sürüm notları.
ACK yönetilen düğüm havuzları otomatik OS CVE yamasını destekler.
-
Kubernetes 1,24 itibarıyla Docker desteklenen bir konteyner çalışma zamanı değildir. Düğüm konteyner çalışma zamanını Docker'dan containerd'ye taşımanız gerekir. Bkz. Düğüm konteyner çalışma zamanını Docker'dan containerd'ye taşıma.
Docker ve containerd farklı komut satırı araçları kullanır. Bkz. Docker ve containerd için yaygın komutların karşılaştırması.
İşletim sistemi görüntülerini güncel tutun. Bkz. İşletim sistemini değiştirme.