Udostępnij za pośrednictwem


Rozwiązywanie problemów z nieaktualnymi wersjami jądra w obrazach węzłów kontenera systemu Linux platformy Azure

Podczas migracji lub podczas dodawania nowych pul węzłów do hosta kontenera systemu Linux platformy Azure mogą wystąpić problemy z nieaktualnymi wersjami jądra. Usługa Azure Kubernetes Service (AKS) co tydzień publikuje nowy obraz węzła systemu Linux platformy Azure, który jest używany dla nowych pul węzłów i jako obraz początkowy do skalowania w górę. Jednak starsze pule węzłów mogą nie aktualizować ich wersji jądra zgodnie z oczekiwaniami.

Aby sprawdzić wersję JĄDRA pul węzłów, uruchom polecenie:

    kubectl get nodes -o wide

Następnie porównaj wersję jądra pul węzłów z najnowszym jądrem opublikowanym w packages.microsoft.com.

Objaw

Typowy objaw tego problemu obejmuje:

  • Węzły systemu Linux platformy Azure nie korzystają z najnowszej wersji jądra.

Przyczyny

Istnieją dwie główne przyczyny tego problemu:

  1. Automatyczne uaktualnienia obrazów węzłów nie zostały włączone podczas tworzenia puli węzłów.
  2. Obraz podstawowy używany przez usługę AKS do uruchamiania klastrów działa dwa tygodnie za najnowszymi wersjami jądra ze względu na procedurę wdrażania.

Rozwiązanie

Aby rozwiązać ten problem, możesz włączyć automatyczne uaktualnienia przy użyciu funkcji GitHub Actions i ponownie uruchomić węzły.

Włączanie automatycznych uaktualnień obrazu węzła przy użyciu interfejsu wiersza polecenia platformy Azure

Aby włączyć automatyczne uaktualnienia obrazu węzła podczas wdrażania klastra z polecenia az-cli, dodaj parametr --auto-upgrade-channel node-image.

az aks create --name testAzureLinuxCluster --resource-group testAzureLinuxResourceGroup --os-sku AzureLinux --auto-upgrade-channel node-image

Włączanie automatycznych uaktualnień obrazu węzła przy użyciu szablonów usługi ARM

Aby włączyć automatyczne uaktualnienia obrazu węzła podczas korzystania z szablonu usługi ARM, można ustawić właściwość upgradeChannel na autoUpgradeProfile wartość node-image.

    autoUpgradeProfile: {
      upgradeChannel: 'node-image'
    }

Ponowne uruchamianie węzłów

Podczas aktualizowania wersji jądra należy ponownie uruchomić węzeł, aby użyć nowej wersji jądra. Zalecamy skonfigurowanie demona kured. Kured do monitorowania węzłów dla /var/run/reboot-required pliku, opróżniania obciążenia i ponownego uruchamiania węzłów.

Obejście: Uaktualnienia ręczne

Jeśli potrzebujesz szybkiego obejścia problemu, możesz ręcznie uaktualnić obraz węzła w klastrze przy użyciu polecenia az aks nodepool upgrade. Można to zrobić, uruchamiając polecenie

az aks nodepool upgrade \
    --resource-group testAzureLinuxResourceGroup \
    --cluster-name testAzureLinuxCluster \
    --name myAzureLinuxNodepool \
    --node-image-only

Następne kroki

Jeśli powyższe kroki nie rozwiążą problemu, otwórz bilet pomocy technicznej.