Megosztás a következőn keresztül:


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.

Az AKS-csomópont frissítési és újraindítási folyamata kured használatával

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