Ajánlott erőforrás-kezelési eljárások alkalmazásfejlesztők számára az Azure Kubernetes Service (AKS) esetében

Amikor alkalmazásokat fejleszt és futtat az Azure Kubernetes Service-ben (AKS), néhány fontos területet figyelembe kell vennie. Az alkalmazástelepítések kezelésének módja negatívan befolyásolhatja az Ön által nyújtott szolgáltatások végfelhasználói élményét.

Ez a cikk a fürtök és a számítási feladatok alkalmazásfejlesztői szempontból történő futtatásával foglalkozik. A felügyeleti ajánlott eljárásokról az Azure Kubernetes Service (AKS) elkülönítésére és erőforrás-kezelésére vonatkozó ajánlott fürtüzemeltetői ajánlott eljárások című témakörben olvashat.

Ez a cikk a következő témaköröket ismerteti:

  • Poderőforrás-kérelmek és -korlátok.
  • Alkalmazások fejlesztésének, hibakeresésének és üzembe helyezésének módjai a Bridge to Kubernetes és a Visual Studio Code használatával.

Poderőforrás-kérelmek és -korlátok meghatározása

Ajánlott eljárások útmutatója

Állítsa be a POD-kérelmeket és -korlátokat a YAML-jegyzékek összes podján. Ha az AKS-fürt erőforráskvótákat használ, és nem definiálja ezeket az értékeket, az üzembe helyezés elutasítható.

Podkérelmek és korlátok használata a számítási erőforrások AKS-fürtön belüli kezeléséhez. A podkérelmek és a korlátok tájékoztatják a Kubernetes ütemezőjét a podhoz rendelendő számítási erőforrásokról.

Pod CPU/Memory requests

A podkérelmek meghatározott mennyiségű processzort és memóriát határoznak meg, amelyekre a podnak rendszeresen szüksége van.

A pod specifikációiban fontos, hogy ezeket a kéréseket és korlátokat a fenti információk alapján határozza meg. Ha nem veszi fel ezeket az értékeket, a Kubernetes ütemezője nem tudja figyelembe venni azokat az erőforrásokat, amelyekre az alkalmazásoknak szükségük van a döntések ütemezéséhez.

Az alkalmazás teljesítményének monitorozása a podkérelmek módosításához. Ha alábecsüli a pod-kérelmeket, előfordulhat, hogy az alkalmazás teljesítménycsökkenést kap egy csomópont túlütemezése miatt. Ha a kérések túlbecsülve vannak, előfordulhat, hogy az alkalmazás nagyobb ütemezési nehézséget okoz.

Pod CPU/Memory limits

A podkorlátok megszűkíthetik a podok által használható processzor- és memóriamennyiséget. A memóriakorlátok határozzák meg, hogy mely podokat kell eltávolítani, ha a csomópontok instabilak az erőforrások elégtelensége miatt. A megfelelő korlátok nélkül a podok el lesznek távolítva, amíg az erőforrás nyomása fel nem oldódik. Bár egy pod időnként túllépheti a CPU-korlátot , a pod nem lesz eltávolítva a processzorkorlát túllépése miatt.

A podkorlátok határozzák meg, hogy a podok mikor veszítik el az erőforrás-felhasználás irányítását. Ha túllépi a korlátot, a pod eltávolításra van megjelölve. Ez a viselkedés fenntartja a csomópont állapotát, és minimalizálja a csomópontot megosztó podokra gyakorolt hatást. Ha nem állít be podkorlátot, az alapértelmezés szerint egy adott csomóponton a legmagasabb elérhető érték lesz.

Kerülje a podkorlát beállítását, amely magasabb, mint amit a csomópontok támogatnak. Minden AKS-csomópont meghatározott mennyiségű processzort és memóriát foglal le az alapvető Kubernetes-összetevők számára. Előfordulhat, hogy az alkalmazás túl sok erőforrást próbál használni a csomóponton ahhoz, hogy más podok sikeresen fussanak.

Az alkalmazás teljesítményének figyelése különböző időpontokban a nap vagy a hét során. Határozza meg a maximális igényeket, és igazítsa a podkorlátokat a maximális igények kielégítéséhez szükséges erőforrásokhoz.

Fontos

A pod specifikációiban definiálja ezeket a kéréseket és korlátokat a fenti információk alapján. Ha nem adja meg ezeket az értékeket, azzal megakadályozza, hogy a Kubernetes ütemezője elszámoljon az alkalmazások által igényelt erőforrásokkal, hogy segítsenek az ütemezési döntésekben.

Ha az ütemező egy podot helyez el egy olyan csomóponton, amely nem rendelkezik elegendő erőforrással, az alkalmazás teljesítménye csökken. A fürtgazdáknak erőforráskvótákat kell beállítaniuk egy névtéren, amely megköveteli az erőforrás-kérelmek és korlátok beállítását. További információ: erőforráskvóták az AKS-fürtökön.

A CPU-kérések vagy -korlátok meghatározásakor az érték processzoregységekben van megadva.

  • Az 1.0 cpu a csomópont egy mögöttes virtuális CPU-magjának felel meg.
    • Ugyanezt a mérést használják gpu-k esetében is.
  • Ezredmásodpercben mért törtek definiálhatók. Például a 100 m egy mögöttes vCPU-mag 0,1-e .

Az alábbi egyszerű példában egyetlen NGINX-pod esetében a pod 100 m processzoridőt és 128Mi memóriát kér le. A pod erőforráskorlátjai 250 m CPU-ra és 256Mi memóriára vannak beállítva.

kind: Pod
apiVersion: v1
metadata:
  name: mypod
spec:
  containers:
  - name: mypod
    image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
    resources:
      requests:
        cpu: 100m
        memory: 128Mi
      limits:
        cpu: 250m
        memory: 256Mi

Az erőforrás-mérésekről és -hozzárendelésekről további információt a tárolók számítási erőforrásainak kezelése című témakörben talál.

Alkalmazások fejlesztése és hibakeresése AKS-fürtön

Ajánlott eljárások útmutatója

A fejlesztői csapatoknak üzembe kell helyeznie és hibakeresést kell végeznie egy AKS-fürtön a Bridge to Kubernetes használatával.

A Bridge to Kubernetes használatával közvetlenül egy AKS-fürtön fejleszthet, hibakeresést és tesztelést végezhet az alkalmazásokon. A csapat fejlesztői együttműködnek az alkalmazás teljes életciklusának összeállításához és teszteléséhez. Továbbra is használhat meglévő eszközöket, például a Visual Studiót vagy a Visual Studio Code-ot a Bridge to Kubernetes bővítménnyel.

A Bridge to Kubernetes integrált fejlesztési és tesztelési folyamatának használata csökkenti a helyi tesztkörnyezetek, például a minikube szükségességét. Ehelyett egy AKS-fürtön fejleszthet és tesztelhet, még biztonságos és izolált fürtökben is.

Megjegyzés:

A Bridge to Kubernetes linuxos podokon és csomópontokon futó alkalmazásokhoz használható.

A Visual Studio Code (VS Code) bővítmény használata a Kuberneteshez

Ajánlott eljárások útmutatója

YAML-jegyzékek írásakor telepítse és használja a Kubernetes VS Code-bővítményét. A bővítményt az integrált üzembehelyezési megoldáshoz is használhatja, amely segíthet az AKS-fürttel ritkán kommunikáló alkalmazástulajdonosoknak.

A KubernetesHez készült Visual Studio Code-bővítmény segítségével alkalmazásokat fejleszthet és helyezhet üzembe az AKS-ben. A bővítmény a következő funkciókat biztosítja:

  • Intellisense Kubernetes-erőforrásokhoz, Helm-diagramokhoz és sablonokhoz.

  • A Kubernetes-erőforrások funkcióinak tallózási, üzembe helyezési és szerkesztési lehetősége a VS Code-on belül.

  • Az Intellisense ellenőrzi a pod specifikációiban beállított erőforrás-kérelmeket vagy korlátokat:

    VS Code extension for Kubernetes warning about missing memory limits

További lépések

Ez a cikk a fürt és a számítási feladatok fürtoperátori szempontból történő futtatására összpontosított. A felügyeleti ajánlott eljárásokról az Azure Kubernetes Service (AKS) elkülönítésére és erőforrás-kezelésére vonatkozó ajánlott fürtüzemeltetői ajánlott eljárások című témakörben olvashat.

Ezen ajánlott eljárások némelyikének implementálásához lásd: Fejlesztés a Bridge to Kubernetes használatával.