Csomópont automatikus üzembe helyezése (előzetes verzió)
Amikor számítási feladatokat helyez üzembe az AKS-ben, döntést kell hoznia a csomópontkészlet konfigurálásáról a szükséges virtuálisgép-méret tekintetében. Mivel a számítási feladatok összetettebbé válnak, és eltérő processzor-, memória- és képességeket igényelnek a futtatáshoz, a virtuálisgép-konfiguráció számos erőforrás-kéréshez való tervezésének többlettere nehézkessé válik.
A csomópontok automatikus kiépítése (NAP) (előzetes verzió) a függőben lévő poderőforrás-követelmények alapján dönti el, hogy az optimális virtuálisgép-konfiguráció a leghatékonyabb és legköltséghatékonyabb módon futtassa ezeket a számítási feladatokat.
A NAP a Nyílt forráskódú Karpenter-projekten alapul, és az AKS-szolgáltató is nyílt forráskódú. A NAP automatikusan telepíti és konfigurálja és kezeli a Karpentert az AKS-fürtökön.
Fontos
Az AKS-hez készült csomópontok automatikus leépítése (NAP) jelenleg előzetes verzióban érhető el. A bétaverziójú, előzetes verziójú vagy másként még általánosan nem elérhető Azure-szolgáltatások jogi feltételeit lásd: Kiegészítő használati feltételek a Microsoft Azure előzetes verziójú termékeihez.
Mielőtt elkezdené
- Azure-előfizetésre van szüksége. Ha nem rendelkezik Azure-előfizetéssel, létrehozhat egy ingyenes fiókot.
- Telepítenie kell az Azure CLI-t.
- Telepítse az
aks-preview
Azure CLI-bővítményt. Minimum 0.5.170-es verzió. - Regisztrálja a NodeAutoProvisioningPreviewfeature jelzőt.
A PARANCSSOR-bővítmény aks-preview
telepítése
Telepítse a
aks-preview
PARANCSSOR-bővítményt aaz extension add
paranccsal.az extension add --name aks-preview
Frissítse a bővítményt, hogy biztosan a legújabb verzió legyen telepítve a
az extension update
parancs használatával.az extension update --name aks-preview
A funkciójelző regisztrálása NodeAutoProvisioningPreview
Regisztrálja a
NodeAutoProvisioningPreview
funkciójelzőt aaz feature register
paranccsal.az feature register --namespace "Microsoft.ContainerService" --name "NodeAutoProvisioningPreview"
Néhány percig tart, amíg az állapot megjelenik a Regisztrált állapotban.
Ellenőrizze a regisztrációs állapotot a
az feature show
paranccsal.az feature show --namespace "Microsoft.ContainerService" --name "NodeAutoProvisioningPreview"
Ha az állapot a Regisztrált állapotot tükrözi, frissítse a Microsoft.ContainerService erőforrás-szolgáltató regisztrációját a
az provider register
paranccsal.az provider register --namespace Microsoft.ContainerService
Korlátozások
- Az egyetlen engedélyezett hálózati konfiguráció az Azure CNI Overlay és a Powered by Cilium.
- Nem engedélyezhető olyan fürt, amelyben a csomópontkészletek engedélyezve vannak a fürt automatikus skálázása
Nem támogatott szolgáltatások
- Windows-csomópontkészletek
- Egyéni konfiguráció alkalmazása a csomóponti kubeletre
- IPv6-fürtök
- Szolgáltatásnevek
Feljegyzés
Használhat rendszer által hozzárendelt vagy felhasználó által hozzárendelt felügyelt identitást is.
- Lemeztitkosítási csoportok
- CustomCATrustCertificates
- Leállítási mód indítása
- HTTP-proxy
- OutboundType mutáció. Minden Kimenő típus támogatott, de a létrehozás után nem módosíthatja őket.
- Privát fürt (és byo privát DNS)
Csomópontok automatikus üzembe helyezésének engedélyezése
Csomópontok automatikus üzembe helyezésének engedélyezése új fürtön
Engedélyezze a csomópontok automatikus üzembe helyezését egy új fürtön a
az aks create
parancs használatával, és állítsa a következőre--node-provisioning-mode
Auto
: . Emellett be kell állítania a--network-plugin
következőtazure
: ,--network-plugin-mode
tooverlay
, és--network-dataplane
tocilium
.az aks create \ --name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --node-provisioning-mode Auto \ --network-plugin azure \ --network-plugin-mode overlay \ --network-dataplane cilium \ --generate-ssh-keys
Csomópont automatikus létrehozásának engedélyezése meglévő fürtön
Engedélyezze a csomópontok automatikus üzembe helyezését egy meglévő fürtön a
az aks update
parancs használatával, és állítsa a következőre--node-provisioning-mode
Auto
: . Emellett be kell állítania a--network-plugin
következőtazure
: ,--network-plugin-mode
tooverlay
, és--network-dataplane
tocilium
.az aks update --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME --node-provisioning-mode Auto --network-plugin azure --network-plugin-mode overlay --network-dataplane cilium
Csomópontkészletek
A csomópont automatikus létrehozása kiindulópontként a virtuálisgép-termékváltozatok listáját használja annak eldöntéséhez, hogy melyik a legalkalmasabb a függő állapotban lévő számítási feladatokhoz. Ha szabályozni szeretné, hogy a kezdeti készletben milyen termékváltozatot szeretne használni, meghatározott termékváltozatcsaládokat vagy virtuálisgép-típusokat és a kiépítési szolgáltató által használt erőforrások maximális mennyiségét határozhatja meg.
Ha bizonyos fenntartott virtuálisgép-termékváltozatokkal rendelkezik, például ezeket a virtuális gépeket használhatja kezdőkészletként.
Egy fürtben több csomópontkészlet-definíció is lehet, de az AKS üzembe helyez egy alapértelmezett csomópontkészlet-definíciót, amelyet módosíthat:
apiVersion: karpenter.sh/v1beta1
kind: NodePool
metadata:
name: default
spec:
disruption:
consolidationPolicy: WhenUnderutilized
expireAfter: Never
template:
spec:
nodeClassRef:
name: default
# 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
Támogatott csomópontkiépítési követelmények
Termékváltozat-választók jól ismert címkékkel
Szelektor | Leírás | Példa |
---|---|---|
karpenter.azure.com/sku-family | Virtuálisgép-termékváltozat családja | D, F, L stb. |
karpenter.azure.com/sku-name | Explicit termékváltozat neve | Standard_A1_v2 |
karpenter.azure.com/sku-version | Termékváltozat verziója (v nélkül, 1 használható) | 1 , 2 |
karpenter.sh/capacity-type | Virtuálisgép-foglalás típusa (Kihasználatlan / Igény szerinti) | helyszíni vagy igény szerinti |
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 | 131 072 |
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 |
topology.kubernetes.io/zone | A rendelkezésre állási zóna(ok) | [uksouth-1,uksouth-2,uksouth-3] |
kubernetes.io/os | Operációs rendszer (Linux csak előzetes verzióban) | linux |
kubernetes.io/arch | CPU-architektúra (AMD64 vagy ARM64) | [amd64, arm64] |
A virtuálisgép-termékváltozat képességeinek és az engedélyezett értékeknek a listázásához használja az vm list-skus
Azure CLI parancsát.
az vm list-skus --resource-type virtualMachines --location <location> --query '[].name' --output table
Csomópontkészlet korlátai
Alapértelmezés szerint a NAP megkísérli ütemezni a számítási feladatokat az Elérhető Azure-kvótán belül. Megadhatja a csomópontkészlet által használt erőforrások felső korlátját is, a csomópontkészlet specifikációjának korlátait megadva.
# Resource limits constrain the total size of the cluster.
# Limits prevent Karpenter 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 legyen ütemezve a számítási feladat. Adja meg a csomópontkészlet definícióinak relatív súlyát.
# 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
Kubernetes- és csomópontrendszerkép-frissítések
Az AKS és a NAP alapértelmezés szerint kezeli a Kubernetes-verziófrissítéseket és a virtuálisgép-operációs rendszer lemezfrissítéseit.
Kubernetes-frissítések
A NAP-csomópontkészletek Kubernetes-frissítései a Control Plane Kubernetes verzióját követik. Ha fürtfrissítést hajt végre, a NAP-csomópontok automatikusan frissülnek, hogy ugyanazt a verziószámozást kövessék.
Csomópont képfrissítései
Alapértelmezés szerint a NAP-csomópontkészlet virtuális gépei automatikusan frissülnek, ha új rendszerkép érhető el. Ha egy csomópontkészletet egy adott csomópontrendszerkép-verzióban szeretne rögzíteni, beállíthatja az imageVersion értéket a csomópontosztályon:
kubectl edit aksnodeclass default
A csomópontosztály definícióján belül állítsa az imageVersion elemet az AKS kibocsátási megjegyzéseiben felsorolt közzétett kiadások egyikére. Az AKS kiadáskövetésére hivatkozva a régiók lemezképeinek rendelkezésre állását is láthatja
Az imageVersion a csomópont lemezképének dátum része, mivel csak az Ubuntu 22.04 támogatott, például "AKSUbuntu-2204-202311.07.0" "202311.07.0"
apiVersion: karpenter.azure.com/v1alpha2
kind: AKSNodeClass
metadata:
annotations:
kubernetes.io/description: General purpose AKSNodeClass for running Ubuntu2204
nodes
meta.helm.sh/release-name: aks-managed-karpenter-overlay
meta.helm.sh/release-namespace: kube-system
creationTimestamp: "2023-11-16T23:59:06Z"
generation: 1
labels:
app.kubernetes.io/managed-by: Helm
helm.toolkit.fluxcd.io/name: karpenter-overlay-main-adapter-helmrelease
helm.toolkit.fluxcd.io/namespace: 6556abcb92c4ce0001202e78
name: default
resourceVersion: "1792"
uid: 929a5b07-558f-4649-b78b-eb25e9b97076
spec:
imageFamily: Ubuntu2204
imageVersion: 202311.07.0
osDiskSizeGB: 128
Az imageVersion-specifikáció eltávolítása visszaállítja a csomópontkészletet a legújabb csomópontrendszerkép-verzióra való frissítéshez.
Csomópontok megszakadása
Amikor a csomópontok számítási feladatai leskálázhatók, a NAP a csomópontkészlet specifikációjának megszakítási szabályaival dönti el, hogy mikor és hogyan távolíthatja el ezeket a csomópontokat, és esetleg átütemezheti a számítási feladatokat a hatékonyabb működés érdekében.
A csomópontokat manuálisan kubectl delete node
is eltávolíthatja, de a NAP azt is szabályozhatja, hogy mikor érdemes optimalizálni a csomópontokat.
disruption:
# Describes which types of Nodes NAP should consider for consolidation
consolidationPolicy: WhenUnderutilized | WhenEmpty
# 'WhenUnderutilized', NAP will consider all nodes for consolidation and attempt to remove or replace Nodes when it discovers that the Node is underutilized and could be changed to reduce cost
# `WhenEmpty`, NAP will only consider nodes for consolidation that contain no workload pods
# The amount of time NAP should wait after discovering a consolidation decision
# This value can currently only be set when the consolidationPolicy is 'WhenEmpty'
# You can choose to disable consolidation entirely by setting the string value 'Never'
consolidateAfter: 30s
Kiválasztási események figyelése
A csomópont automatikus kiépítése fürteseményeket hoz létre, amelyek az üzembe helyezési és ütemezési döntések figyelésére használhatók. Az eseményeket a Kubernetes eseményfolyamán keresztül tekintheti meg.
kubectl get events -A --field-selector source=karpenter -w
Azure Kubernetes Service