Biztonsági és kernelfrissítések alkalmazása Linux-csomópontokra az Azure Kubernetes Service-ben (AKS)
A fürtök védelme érdekében a rendszer automatikusan alkalmazza a biztonsági frissítéseket az AKS Linux-csomópontjaira. Ezek a frissítések közé tartoznak az operációs rendszer biztonsági javításai vagy a kernelfrissítések. Ezen frissítések némelyikéhez a csomópont újraindítása szükséges a folyamat befejezéséhez. Az AKS nem indítja újra automatikusan ezeket a Linux-csomópontokat a frissítési folyamat befejezéséhez.
A Windows Server-csomópontok naprakészen tartásának folyamata kissé eltérő. A Windows Server-csomópontok nem kapnak napi frissítéseket. Ehelyett egy AKS-frissítést hajt végre, amely új csomópontokat helyez üzembe a legújabb alapSzintű Ablakkiszolgáló rendszerképével és javításaival. Windows Server-csomópontokat használó AKS-fürtök esetén lásd: Csomópontkészlet frissítése az AKS-ben.
Ez a cikk bemutatja, hogyan használható a nyílt forráskódú kured (KUbernetes REboot Daemon) az újraindítást igénylő Linux-csomópontok figyelésére, majd automatikusan kezelheti a futó podok és csomópontok újraindítási folyamatának átütemezését.
Feljegyzés
Kured
egy nyílt forráskódú projekt a Cloud Native Computing Foundationben. Kérjük, hogy a problémákat a kured GitHubra irányítsa. További támogatás a CNCF Slack #kured csatornáján található.
Fontos
A nyílt forráskódú szoftverek az AKS dokumentációjában és mintáiban szerepelnek. Az üzembe helyezhető szoftverek nem tartoznak az AKS szolgáltatásiszint-szerződéseibe, a korlátozott jótállásba és a Azure-támogatás. Mivel nyílt forráskódú technológiát használ az AKS mellett, tekintse meg a megfelelő közösségek és projektfenntartók által rendelkezésre álló támogatási lehetőségeket a terv kidolgozásához.
A Ray GitHub-adattár például több platformot ír le, amelyek a válaszidő, a cél és a támogatási szint függvényében változnak.
A Microsoft felelősséget vállal az AKS-en üzembe helyezhető nyílt forráskódú csomagok elkészítéséért. Ez a felelősség magában foglalja a buildelési, vizsgálati, aláírási, érvényesítési és gyorsjavítási folyamat teljes tulajdonjogát, valamint a tárolólemezképek bináris fájljainak vezérlését. További információ: Az AKS és az AKS biztonságirés-kezelésének támogatása.
Mielőtt elkezdené
Telepítenie és konfigurálnia kell az Azure CLI 2.0.59-es vagy újabb verzióját. A verzió azonosításához futtassa a következőt: az --version
. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése.
Az AKS-csomópont frissítési felületének ismertetése
Egy AKS-fürtben a Kubernetes-csomópontok Azure-beli virtuális gépekként futnak. Ezek a Linux-alapú virtuális gépek Ubuntu vagy Azure Linux rendszerképet használnak, és az operációs rendszer úgy van konfigurálva, hogy minden nap automatikusan ellenőrizze a frissítéseket. Ha biztonsági vagy kernelfrissítések érhetők el, a rendszer automatikusan letölti és telepíti őket.
Egyes biztonsági frissítések, például a kernelfrissítések, a folyamat véglegesítéséhez csomópont-újraindítást igényelnek. Az újraindítást igénylő Linux-csomópont létrehoz egy /var/run/reboot-required nevű fájlt. Ez az újraindítási folyamat nem történik meg automatikusan.
Saját munkafolyamatokkal és folyamatokkal kezelheti a csomópontok újraindítását, vagy kured
vezényelheti a folyamatot. Ezzel együtt kured
egy DaemonSet lesz üzembe helyezve, amely podot futtat a fürt minden Linux-csomópontján. Ezek a Podok a DaemonSetben figyelik a /var/run/reboot-required fájl meglétét, majd kezdeményeznek egy folyamatot a csomópontok újraindításához.
Csomópontrendszerkép frissítései
A felügyelet nélküli frissítések frissítéseket alkalmaznak a Linux-csomópont operációs rendszerére, de a fürt csomópontjainak létrehozásához használt rendszerkép változatlan marad. Ha új Linux-csomópontot ad hozzá a fürthöz, a rendszer az eredeti rendszerképet használja a csomópont létrehozásához. Ez az új csomópont minden nap megkapja az automatikus ellenőrzés során elérhető összes biztonsági és kernelfrissítést, de az összes ellenőrzés és újraindítás befejeződéséig nem lesz elérhető.
Másik lehetőségként a csomópont lemezképének frissítésével ellenőrizheti és frissítheti a fürt által használt csomópontrendszerképeket. A csomópontok rendszerképének frissítéséről további információt az Azure Kubernetes Service (AKS) csomópontrendszerkép-frissítésében talál.
Csomópontfrissítések
Az AKS-ben van egy másik folyamat, amely lehetővé teszi a fürt frissítését . A frissítés általában a Kubernetes egy újabb verziójára való áttérés, nem csak a csomópont biztonsági frissítéseinek alkalmazása. Az AKS-frissítés a következő műveleteket hajtja végre:
- A rendszer új csomópontot helyez üzembe a legújabb biztonsági frissítésekkel és az alkalmazott Kubernetes-verzióval.
- A régi csomópontot kordonozza és üríti.
- A podok az új csomóponton vannak ütemezve.
- A régi csomópont törlődik.
A frissítési esemény során nem maradhat ugyanazon a Kubernetes-verzión. Meg kell adnia a Kubernetes újabb verzióját. A Kubernetes legújabb verziójára való frissítéshez frissítheti az AKS-fürtöt.
Kured üzembe helyezése AKS-fürtön
A kured
DaemonSet telepítéséhez telepítse a következő hivatalos Kured Helm-diagramot. Ezzel létrehoz egy szerepkör- és fürtszerepkört, kötéseket és egy szolgáltatásfiókot, majd üzembe helyezi a DaemonSetet a használatával kured
.
# Add the Kured Helm repository
helm repo add kubereboot https://kubereboot.github.io/charts/
# Update your local Helm chart repository cache
helm repo update
# Create a dedicated namespace where you would like to deploy kured into
kubectl create namespace kured
# Install kured in that namespace with Helm 3 (only on Linux nodes, kured is not working on Windows nodes)
helm install my-release kubereboot/kured --namespace kured --set controller.nodeSelector."kubernetes\.io/os"=linux
További paramétereket is konfigurálhat például a Prometheussal vagy a Slacktel való integrációhoz kured
. A konfigurációs paraméterekkel kapcsolatos további információkért tekintse meg a kured Helm-diagramot.
Fürtcsomópontok frissítése
Alapértelmezés szerint az AKS Linux-csomópontjai minden este ellenőrzik a frissítéseket. Ha nem szeretne várni, manuálisan is elvégezhet egy frissítést a kured
megfelelő futtatás ellenőrzéséhez. Először kövesse az SSH-hoz tartozó lépéseket az egyik AKS-csomóponton. Miután SSH-kapcsolatot létesített a Linux-csomóponttal, ellenőrizze a frissítéseket, és alkalmazza őket az alábbiak szerint:
sudo apt-get update && sudo apt-get upgrade -y
Ha olyan frissítéseket alkalmaztak, amelyek csomópont-újraindítást igényelnek, a rendszer a fájlt a /var/run/reboot-required fájlba írja. Kured
alapértelmezés szerint 60 percenként újraindulást igénylő csomópontokat keres.
Újraindítási folyamat figyelése és áttekintése
Ha a DaemonSet egyik replikája azt észleli, hogy a csomópont újraindítására van szükség, a kubernetes API-n keresztül zárolás kerül a csomópontra. Ez a zárolás megakadályozza, hogy több pod legyen ütemezve a csomóponton. A zárolás azt is jelzi, hogy egyszerre csak egy csomópontot kell újraindítani. A csomópont kordonozásával a futó podok le lesznek ürítve a csomópontról, és a csomópont újraindul.
A kubectl get nodes paranccsal figyelheti a csomópontok állapotát. Az alábbi példakimenet egy SchedulingDisabled állapotú csomópontot mutat be, amikor a csomópont előkészíti az újraindítási folyamatot:
NAME STATUS ROLES AGE VERSION
aks-nodepool1-28993262-0 Ready,SchedulingDisabled agent 1h v1.11.7
A frissítési folyamat befejezése után megtekintheti a csomópontok állapotát a kubectl get nodes paranccsal a --output wide
paraméterrel. Ez a kimenet lehetővé teszi a mögöttes csomópontok KERNEL-VERZIÓJÁnak különbségét, ahogy az alábbi példakimenetben is látható. Az aks-nodepool1-28993262-0 egy korábbi lépésben frissült, és a kernel 4.15.0-1039-azure-os verzióját mutatja. A nem frissített node aks-nodepool1-28993262-1 a 4.15.0-1037-azure kernelverziót jeleníti meg.
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
aks-nodepool1-28993262-0 Ready agent 1h v1.11.7 10.240.0.4 <none> Ubuntu 16.04.6 LTS 4.15.0-1039-azure docker://3.0.4
aks-nodepool1-28993262-1 Ready agent 1h v1.11.7 10.240.0.5 <none> Ubuntu 16.04.6 LTS 4.15.0-1037-azure docker://3.0.4
Következő lépések
Ez a cikk részletesen bemutatja, hogyan lehet automatikusan kured
újraindítani a Linux-csomópontokat a biztonsági frissítési folyamat részeként. A Kubernetes legújabb verziójára való frissítéshez frissítheti az AKS-fürtöt.
Windows Server-csomópontokat használó AKS-fürtök esetén lásd: Csomópontkészlet frissítése az AKS-ben.
A frissítési ajánlott eljárások és egyéb szempontok részletes ismertetését az AKS-javítás és a frissítési útmutató ismerteti.
Azure Kubernetes Service