API'de hataya neden olan değişikliklerde Azure Kubernetes Service (AKS) kümesi yükseltmelerini otomatik olarak durdurma
Bu makalede, API hatalarına neden olan değişikliklerde Azure Kubernetes Service (AKS) kümesi yükseltmelerini otomatik olarak nasıl durduracağınız gösterilmektedir.
Genel bakış
Desteklenen bir Kubernetes sürümünde kalmak için kümenizi yılda en az bir kez yükseltmeniz ve olası tüm kesintilere hazırlanmanız gerekir. Bu kesintiler API'de hataya neden olan değişiklikler, kullanımdan kaldırmalar ve Helm ve Kapsayıcı Depolama Arabirimi (CSI) gibi bağımlılıklardan kaynaklanmaktadır. Kesinti yaşamadan bu kesintileri tahmin etmek ve kritik iş yüklerini geçirmek zor olabilir.
AKS kümenizi, kullanım dışı API'ler içeren ikincil sürüm değişikliğinden oluşan yükseltme işlemlerini otomatik olarak durduracak ve sizi bu sorunla ilgili uyaracak şekilde yapılandırabilirsiniz. Bu özellik beklenmeyen kesintileri önlemenize yardımcı olur ve yükseltmeye devam etmeden önce kullanım dışı bırakılan API'leri ele almak için size zaman verir.
Başlamadan önce
Başlamadan önce aşağıdaki önkoşulları karşıladığınızdan emin olun:
- Yükseltme işlemi, küme denetim düzlemi için kubernetes ikincil sürüm değişikliğidir.
- Yükseltmekte olduğunuz Kubernetes sürümü 1.26 veya üzeridir.
- Yükseltme yaptığınız hedeflenen sürüm için kullanım dışı bırakılan API'lerin son kullanımı, yükseltme işleminden önceki 12 saat içinde gerçekleşmelidir. AKS kullanımı saatlik olarak kaydeder, bu nedenle bir saat içinde kullanım dışı bırakılan API'lerin algılamada görünmesi garanti edilmemektedir.
Durdurulan yükseltme işlemlerini azaltma
Önkoşulları karşılıyorsanız, yükseltmeyi deneyin ve aşağıdaki örnek hata iletisine benzer bir hata iletisi alın:
Bad Request({
"code": "ValidationError",
"message": "Control Plane upgrade is blocked due to recent usage of a Kubernetes API deprecated in the specified version. Please refer to https://kubernetes.io/docs/reference/using-api/deprecation-guide to migrate the usage. To bypass this error, set enable-force-upgrade in upgradeSettings.overrideSettings. Bypassing this error without migrating usage will result in the deprecated Kubernetes API calls failing. Usage details: 1 error occurred:\n\t* usage has been detected on API flowcontrol.apiserver.k8s.io.prioritylevelconfigurations.v1beta1, and was recently seen at: 2023-03-23 20:57:18 +0000 UTC, which will be removed in 1.26\n\n",
"subcode": "UpgradeBlockedOnDeprecatedAPIUsage"
})
Sorunu hafifletmek için iki seçeneğiniz vardır: Kullanım dışı API'lerin kullanımını kaldırabilir (önerilen) veya API değişikliklerini yoksaymak için doğrulamayı atlayabilirsiniz.
Kullanım dışı API'lerin kullanımını kaldırma (önerilen)
Azure portalında küme kaynağınıza gidin ve Sorunları tanılama ve çözme'yi seçin
Kubernetes API kullanımdan kaldırmaları oluştur, yükselt, sil ve ölçeklendir'i> seçin.
Son kullanım dışı API kullanımının görüldüğü zamandan itibaren 12 saat bekleyin. Salt Okunur fiiller, kullanım dışı bırakılan api kullanımından (Get/List/Watch) hariç tutulur.( Ayrıca Kapsayıcı içgörülerini etkinleştirerek ve kube denetim günlüklerini keşfederek geçmiş API kullanımını denetleyebilirsiniz.)
Küme yükseltmenizi yeniden deneyin.
API değişikliklerini yoksaymak için doğrulamayı atlama
Not
Bu yöntem, Azure CLI 2.57 veya sonraki bir sürümünü kullanmanızı gerektirir. Önizleme CLI uzantısı yüklüyse, sürüme veya sonraki bir sürüme 3.0.0b10
güncelleştirmeniz gerekir. Hedeflenen Kubernetes sürümünde kullanım dışı bırakılan API'ler uzun vadeli çalışmayabileceği için bu yöntem önerilmez. Yükseltme tamamlandıktan sonra bunları mümkün olan en kısa sürede kaldırmanızı öneririz.
API'de hataya neden olan değişiklikleri yoksaymak ve yükseltmeyi çağırmak için doğrulamayı atla. bayrağını
enable-force-upgrade
belirtin ve doğrulamanınupgrade-override-until
atlandığı pencerenin sonunu tanımlamak için özelliğini ayarlayın. Değer ayarlı değilse, pencere varsayılan olarak geçerli saatten itibaren üç gün olarak ayarlanır. Belirttiğiniz tarih ve saat gelecekte olmalıdır.az aks upgrade --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME --kubernetes-version $KUBERNETES_VERSION --enable-force-upgrade --upgrade-override-until 2023-10-01T13:00:00Z
Not
Z
, 'Zulu' saati olarak da bilinen sıfır UTC/GMT uzaklığı için bölge belirleyicidir. Bu örnek pencerenin sonunu GMT olarak13:00:00
ayarlar. Daha fazla bilgi için bkz . Birleşik tarih ve saat gösterimleri.
Sonraki adımlar
Bu makalede, API hataya neden olan değişikliklerde AKS kümesi yükseltmelerini otomatik olarak nasıl durduracağınız gösterildi. AKS kümelerine yönelik daha fazla yükseltme seçeneği hakkında daha fazla bilgi edinmek için bkz . Azure Kubernetes Service (AKS) kümeleri için yükseltme seçenekleri.
Azure Kubernetes Service