Aracılığıyla paylaş


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.

  1. Azure portalında küme kaynağınıza gidin ve Sorunları tanılama ve çözme'yi seçin

  2. Kubernetes API kullanımdan kaldırmaları oluştur, yükselt, sil ve ölçeklendir'i> seçin.

    'Seçili Kubernetes API kullanımdan kaldırmalar' bölümünü gösteren Azure portalının ekran görüntüsü.

  3. 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.)

  4. 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.

  1. 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ın upgrade-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 olarak 13: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.