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:
- Automatyczne uaktualnienia obrazów węzłów nie zostały włączone podczas tworzenia puli węzłów.
- 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.