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


Csomópontkészletek konfigurálása a csomópontok automatikus üzembe helyezéséhez (NAP) az Azure Kubernetes Service (AKS) szolgáltatásban.

Ez a cikk bemutatja, hogyan konfigurálhatja a csomópontkészleteket a csomópontok automatikus kiépítéséhez (NAP) az Azure Kubernetes Service (AKS) keretében, beleértve a SKU-választókat, az erőforráskorlátokat és a prioritási súlyokat. Példákat is kínál az első lépésekhez.

Csomópontkészletek áttekintése a NAP-ban

A NAP virtuálisgép-termékváltozat-követelményeket használ a függőben lévő számítási feladatokhoz legmegfelelőbb virtuális gépek kiválasztásához. Konfigurálhatja a következőt:

  • Termékváltozatcsaládok és adott példánytípusok.
  • Erőforráskorlátok és prioritások.
  • Spot vagy igény szerinti példányok.
  • Architektúrára és képességekre vonatkozó követelmények.

Az NodePool erőforrás korlátozza a NAP által létrehozott csomópontokat és az ezeken a csomópontokon futó podokat. A NAP első telepítésekor az alapértelmezett NodePoolértéket hozza létre. Módosíthatja ezt a csomópontkészletet, vagy létrehozhat további csomópontkészleteket a számítási feladatok igényeinek megfelelően.

NAP kulcsfontosságú viselkedései NodePools

A NAP konfigurálásakor NodePools tartsa szem előtt az alábbi viselkedéseket:

  • A NAP működéséhez legalább egy NodePool szükséges.
  • A NAP kiértékeli az egyes konfigurált elemeket NodePool.
  • A NAP kihagyja a NodePools pod által nem tolerált fertőzötteket.
  • NAP indítási taint-eket alkalmaz a kiépített csomópontokra, de nem igényel pod toleranciát.
  • A NAP akkor működik a legjobban, ha kölcsönösen kizáró NodePools. NodePools Több egyezés esetén a legnagyobb súlyút használja.

A csomópontkészlet alapértelmezett konfigurációjának áttekintése

A NAP által létrehozott alapértelmezett Karpenter NodePooldefault konfigurációja a következő:

apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
  name: default
spec:
  disruption:
    consolidationPolicy: WhenEmptyOrUnderutilized
  template:
    spec:
      nodeClassRef:
        name: default
      expireAfter: Never
      # Requirements that constrain the parameters of provisioned nodes.
      # These requirements are combined with pod.spec.affinity.nodeAffinity rules.
      # Operators { In, NotIn, Exists, DoesNotExist, Gt, and Lt } are supported.
      # https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#operators
      requirements:
      - key: kubernetes.io/arch
        operator: In
        values:
        - amd64
      - key: kubernetes.io/os
        operator: In
        values:
        - linux
      - key: karpenter.sh/capacity-type
        operator: In
        values:
        - on-demand
      - key: karpenter.azure.com/sku-family
        operator: In
        values:
        - D

Emellett létrehoz egy csomópontkészletet system-surge is, amely segít automatikusan skálázni a rendszerkészlet csomópontjait.

Az alapértelmezett csomópontkészlet konfigurálásának szabályozása a fürt létrehozása során

Amikor a NAP-val engedélyezett új AKS-fürtöt hoz létre a Azure CLI használatával, a --node-provisioning-default-pools jelzővel szabályozhatja az alapértelmezett NAP NodePool konfigurációját.

A --node-provisioning-default-pools jelölő vezérli az alapértelmezett NAP-konfigurációt NodePool , és elfogadja a következő értékeket:

  • Auto (alapértelmezett): Két szabványt NodePools hoz létre azonnali használatra.
  • None: Nem hoz létre bármilyen NodePools. Meg kell határoznia a sajátját.

Figyelmeztetés

Auto értékről None értékre történő váltás: Ha egy meglévő fürtön módosítja a beállítást Auto-ról None-ra, az alapértelmezett NodePools nem kerül automatikus törlésre. Ha már nincs rájuk szüksége, manuálisan kell törölnie őket.

Csomópontkészlet konfigurációs beállításai

A következő szakaszok a NAP különböző konfigurációs lehetőségeit NodePools ismertetik, beleértve a jól ismert címkéket és termékváltozat-választókat, a csomópontkészlet korlátait és a csomópontkészlet súlyát.

Jól ismert címkék és termékváltozat-választók

A Kubernetes well-ismert címkéket definiál, amelyeket Azure implementál. Ezeket a címkéket a spec.requirements szakaszban, a NodePool API-ban határozhatja meg. A NAP emellett Azure-specifikus címkéket is támogat a speciálisabb ütemezéshez.

karpenter.azure.com Termékváltozat-választók

Az alábbi táblázat felsorolja a karpenter.azure.com SKU választókat, amelyeket a spec.requirements részében a NodePool API-nak használhat a csomópontok virtuálisgép-jellemzőinek meghatározásához.

Selector Description Example
karpenter.azure.com/sku-family Virtuális gép SKU családja D, F, L stb.
karpenter.azure.com/sku-name Explicit termékváltozat neve Standard_A1_v2
karpenter.azure.com/sku-version SKU verzió (v nélkül, használható az 1) 1, 2
karpenter.sh/capacity-type Virtuálisgép-foglalás típusa (Spot / igény szerinti) Pont
karpenter.azure.com/sku-cpu Processzorok száma a virtuális gépen 16
karpenter.azure.com/sku-memory Memória a MiB virtuális gépében 131072
kubernetes.azure.com/sku-cpu Processzorok száma a virtuális gépen 16
kubernetes.azure.com/sku-memory Memória a MiB virtuális gépében 131072
karpenter.azure.com/sku-gpu-name GPU neve A100
karpenter.azure.com/sku-gpu-manufacturer GPU-gyártó nvidia
karpenter.azure.com/sku-gpu-count GPU-k száma virtuális gépenként 2
karpenter.azure.com/sku-networking-accelerated Azt jelzi, hogy a virtuális gép felgyorsította-e a hálózatkezelést [igaz, hamis]
karpenter.azure.com/sku-storage-premium-capable Az, hogy a virtuális gép támogatja-e a Prémium IO-tárolót [igaz, hamis]
karpenter.azure.com/sku-storage-ephemeralos-maxsize A rövid élettartamú operációsrendszer-lemez méretkorlátja Gb-ban 92

kubernetes.io jól ismert címkék

Az alábbi táblázat felsorolja az kubernetes.io jól ismert címkéket, amelyeket az spec.requirements szakaszában az ön NodePool API-jának használhat a csomópontok jellemzőinek meghatározásához.

Címke Description Example
topology.kubernetes.io/zone Rendelkezésre állási zóna(ok) [uksouth-1,uksouth-2,uksouth-3]
kubernetes.io/os Operációs rendszer Linux
kubernetes.io/arch CPU-architektúra (AMD64 vagy ARM64) [amd64, arm64]

SKU család példák

A karpenter.azure.com/sku-family választóval meghatározott virtuálisgép-családokat célozhat meg.

Család Description
D sorozat Kiegyensúlyozott processzor-memória arányú általános célú virtuális gépek
F sorozat Számításra optimalizált virtuális gépek magas processzor-memória aránysal
E-sorozat Memóriaoptimalizált virtuális gépek memóriaigényes alkalmazásokhoz
L sorozat Tárolóoptimalizált, nagy lemezteljesítményű virtuális gépek
N sorozat GPU-kompatibilis virtuális gépek nagy számítási feladatokhoz

Példa konfiguráció termékváltozatcsalád használatával:

requirements:
- key: karpenter.azure.com/sku-family
  operator: In
  values:
  - D
  - F

Termékváltozat neve – példák

A karpenter.azure.com/sku-name választóval pontosan megadhatja a virtuálisgép-példány típusát.

requirements:
- key: karpenter.azure.com/sku-name
  operator: In
  values:
  - Standard_D4s_v3
  - Standard_F8s_v2

Termékváltozatra vonatkozó példák

A karpenter.azure.com/sku-version választó a virtuálisgép-termékváltozatok meghatározott generációját célozza meg.

requirements:
- key: karpenter.azure.com/sku-version
  operator: In
  values:
  - "3"  # v3 generation
  - "5"  # v5 generation

Példa rendelkezésre állási zónára

A topology.kubernetes.io/zone választóval megadhatja a csomópontok rendelkezésre állási zónáit.

requirements:
- key: topology.kubernetes.io/zone
  operator: In
  values:
  - eastus-1
  - eastus-2

Megjegyzés:

A régióhoz elérhető zónákat a az account list-locations --output table Azure CLI paranccsal találhatja meg.

Architektúra példa

A kubernetes.io/arch választóval megadhatja a csomópontok processzorarchitektúráját. A NAP támogatja mind a amd64, mind a arm64 csomópontokat.

requirements:
- key: kubernetes.io/arch
  operator: In
  values:
  - amd64
  - arm64

Operációs rendszer – példa

A kubernetes.io/os választóval megadhatja a csomópontok operációs rendszerét.

requirements:
- key: kubernetes.io/os
  operator: In
  values:
  - linux

Példa kapacitástípusra

A karpenter.sh/capacity-type választóval megadhatja, hogy a Spot vagy az igény szerinti példányokat használja-e.

Megjegyzés:

A NAP a Spot példányokat részesíti előnyben, ha mind a Spot, mind az igény szerinti példány meg van adva.

requirements:
- key: karpenter.sh/capacity-type
  operator: In
  values:
  - spot
  - on-demand

Csomópontkészlet korlátai

Alapértelmezés szerint a NAP megkísérli ütemezni a számítási feladatokat a rendelkezésre álló Azure kvótán belül. A csomópontkészlet által használt erőforrások felső korlátját is megadhatja a csomópontkészlet specifikációjának korlátainak megadásával. Például:

spec:
  # Resource limits constrain the total size of the cluster.
  # Limits prevent Node Auto Provisioning from creating new instances once the limit is exceeded.
  limits:
    cpu: "1000"
    memory: 1000Gi

Csomópontkészlet súlyozása

Ha több csomópontkészlet van definiálva, beállíthatja, hogy hol kell ütemezni a számítási feladatokat a csomópontkészlet-definíciók relatív súlyának meghatározásával. Például:

spec:
  # Priority given to the node pool when the scheduler considers which to select. 
  # Higher weights indicate higher priority when comparing node pools.
  # Specifying no weight is equivalent to specifying a weight of 0.
  weight: 10

Statikus csomópontkészletek

A statikus csomópontkészletekkel rögzített számú csomópont hozható létre a replicas mező használatával. Statikus csomópontkészletek esetén a csomópontok száma mindig legalább a mezőben megadott replicas érték lesz, függetlenül a függőben lévő podnyomástól. A mező beállításával nodeslimits azt is beállíthatja, hogy a csomópontkészlet legfeljebb hány csomópontra méretezhető fel.

apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
  name: static-node-pool
spec:
  replicas: 5
  template:
    spec:
      requirements:
      - key: karpenter.azure.com/sku-name
        operator: In
        values:
          - Standard_D4s_v3
          - Standard_F8s_v2
      - key: topology.kubernetes.io/zone
        operator: In
         values:
           - eastus-1
           - eastus-2
           - eastus-3
  limits:
    nodes: 10  # Maximum number of nodes this node pool can scale up to

Megjegyzés:

Ha statikus csomópontkészletekkel használja a limits mezőt, csak a nodes: mező állítható. Az erőforrások nem állíthatók be.

Következő lépések

Az AKS-ben a csomópontok automatikus kiépítésével kapcsolatos további információkért tekintse meg az alábbi cikkeket: