Oktatás
Modul
Azure Pipeline-ügynökök és -készletek kezelése - Training
Azure Pipeline-ügynökök és -készletek kezelése
Ezt a böngészőt már nem támogatjuk.
Frissítsen a Microsoft Edge-re, hogy kihasználhassa a legújabb funkciókat, a biztonsági frissítéseket és a technikai támogatást.
Az Azure Kubernetes Service -ben (AKS) az azonos konfigurációval rendelkező csomópontok csomópontkészletekbe vannak csoportosítva. Ezek a csomópontkészletek tartalmazzák az alkalmazásokat futtató mögöttes virtuális gépeket. AKS-fürt létrehozásakor meg kell határoznia a csomópontok kezdeti számát és méretét (SKU). Az alkalmazás igényeinek változásával előfordulhat, hogy módosítania kell a csomópontkészletek beállításait. Előfordulhat például, hogy skáláznia kell egy csomópontkészlet csomópontjainak számát, vagy frissítenie kell egy csomópontkészlet Kubernetes-verzióját.
Ez a cikk bemutatja, hogyan kezelheti egy vagy több csomópontkészletet egy AKS-fürtben.
az --version
. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése.A következő korlátozások érvényesek több csomópontkészletet támogató AKS-fürtök létrehozásakor és kezelésekor:
Megjegyzés
A csomópontkészlet operációsrendszer-lemezképének verziója a fürt Kubernetes-verziójához van kötve. Az operációsrendszer-rendszerképek frissítése csak fürtfrissítést követően történik.
Ebben a példában frissítjük a mynodepool csomópontkészletét. Mivel két csomópontkészlet van, a frissítéshez a az aks nodepool upgrade
parancsot kell használnunk.
Ellenőrizze, hogy vannak-e elérhető frissítések a az aks get-upgrades
paranccsal.
az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster
Frissítse a mynodepool csomópontkészletét a az aks nodepool upgrade
paranccsal.
az aks nodepool upgrade \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool \
--kubernetes-version KUBERNETES_VERSION \
--no-wait
A parancs használatával az aks nodepool list
listázhatja a csomópontkészletek állapotát.
az aks nodepool list --resource-group myResourceGroup --cluster-name myAKSCluster
Az alábbi példakimenet azt mutatja, hogy a mynodepool frissítési állapotban van:
[
{
...
"count": 3,
...
"name": "mynodepool",
"orchestratorVersion": "KUBERNETES_VERSION",
...
"provisioningState": "Upgrading",
...
"vmSize": "Standard_DS2_v2",
...
},
{
...
"count": 2,
...
"name": "nodepool1",
"orchestratorVersion": "1.15.7",
...
"provisioningState": "Succeeded",
...
"vmSize": "Standard_DS2_v2",
...
}
]
A csomópontok frissítése a megadott verzióra néhány percet vesz igénybe.
Ajánlott eljárásként frissítse az AKS-fürtök összes csomópontkészletét ugyanarra a Kubernetes-verzióra. Ennek az igazításnak az alapértelmezett módja az aks upgrade
az összes csomópontkészlet frissítése a vezérlősíkkal együtt. Az egyes csomópontkészletek frissítésének lehetősége lehetővé teszi a csomópontkészletek közötti működés közbeni frissítés és podok ütemezését az alkalmazás üzemidejének fenntartása érdekében a fent említett korlátozásokon belül.
Megjegyzés
A Kubernetes a szabványos szemantikai verziószámozási sémát használja. A verziószám x.y.z formátumban van kifejezve, ahol x a főverzió, y az alverzió, z pedig a javítás verziója. Az 1.12.6-os verzióban például az 1 a főverzió, a 12 az alverzió, a 6 pedig a javítás verziója. A vezérlősík Kubernetes-verziója és a kezdeti csomópontkészlet a fürt létrehozásakor van beállítva. Más csomópontkészletek Kubernetes-verziójúak, amikor hozzáadják őket a fürthöz. A Kubernetes-verziók eltérhetnek a csomópontkészletek és a csomópontkészletek és a vezérlősík között.
Az AKS-fürtökhöz két fürterőforrás-objektum tartozik, amelyekhez Kubernetes-verziók vannak társítva:
A vezérlősík egy vagy több csomópontkészletre van leképzve. A frissítési művelet viselkedése attól függ, hogy melyik Azure CLI-parancsot használja.
az aks upgrade
frissíti a vezérlősíkot és a fürt összes csomópontkészletét ugyanarra a Kubernetes-verzióra.az aks upgrade
a --control-plane-only
jelölő csak a fürtvezérlősíkot frissíti, és az összes csomópontkészletet változatlanul hagyja.az aks nodepool upgrade
csak a célcsomópontkészletet frissíti a megadott Kubernetes-verzióval.A fürtvezérlősík és a csomópontkészlet kubernetes-frissítései a következő szabálykészletekkel vannak érvényesítve:
A csomópontkészletek frissítésére szolgáló érvényes verziókra vonatkozó szabályok:
major.minor.patch
verziója.Frissítési művelet beküldésének szabályai:
Az alkalmazás számítási feladatainak változásával előfordulhat, hogy skáláznia kell a csomópontkészletben lévő csomópontok számát. A csomópontok száma fel- vagy leskálázható.
A parancs használatával az aks node pool scale
skálázhatja a csomópontkészlet csomópontjainak számát.
az aks nodepool scale \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool \
--node-count 5 \
--no-wait
A parancs használatával az aks node pool list
listázhatja a csomópontkészletek állapotát.
az aks nodepool list --resource-group myResourceGroup --cluster-name myAKSCluster
Az alábbi példakimenet azt mutatja, hogy a mynodepool skálázási állapotban van öt csomópont új számával:
[
{
...
"count": 5,
...
"name": "mynodepool",
"orchestratorVersion": "1.15.7",
...
"provisioningState": "Scaling",
...
"vmSize": "Standard_DS2_v2",
...
},
{
...
"count": 2,
...
"name": "nodepool1",
"orchestratorVersion": "1.15.7",
...
"provisioningState": "Succeeded",
...
"vmSize": "Standard_DS2_v2",
...
}
]
A méretezési művelet végrehajtása néhány percet vesz igénybe.
Az AKS külön funkciót kínál a csomópontkészletek automatikus skálázásához egy fürt automatikus skálázási funkciójával. Ezt a funkciót csomópontkészletenként egyedi minimális és maximális méretezési számmal engedélyezheti.
További információ: a fürt automatikus skálázási funkciójának használata.
További információ: Adott virtuális gépek eltávolítása meglévő csomópontkészletből.
A számítási feladatok igényeinek változásával meglévő kapacitásfoglalási csoportokat társíthat csomópontkészletekhez, hogy garantált legyen a csomópontkészletek lefoglalt kapacitása.
Használja a CLI 2.56-os vagy újabb verzióját, valamint az API 2023-10-01-es vagy újabb verzióját.
A kapacitásfoglalási csoportnak már léteznie kell, és legalább egy kapacitásfoglalást tartalmaznia kell, ellenkező esetben a csomópontkészlet figyelmeztetéssel lesz hozzáadva a fürthöz, és nincs kapacitásfoglalási csoport társítva. További információ: kapacitásfoglalási csoportok.
Létre kell hoznia egy felhasználó által hozzárendelt felügyelt identitást a kapacitásfoglalási csoportot (CRG) tartalmazó erőforráscsoporthoz. A rendszer által hozzárendelt felügyelt identitások nem működnek ehhez a funkcióhoz. Az alábbi példában cserélje le a környezeti változókat a saját értékeire.
IDENTITY_NAME=myID
RG_NAME=myResourceGroup
CLUSTER_NAME=myAKSCluster
VM_SKU=Standard_D4s_v3
NODE_COUNT=2
LOCATION=westus2
az identity create --name $IDENTITY_NAME --resource-group $RG_NAME
IDENTITY_ID=$(az identity show --name $IDENTITY_NAME --resource-group $RG_NAME --query identity.id -o tsv)
A szerepkört hozzá kell rendelnie a Contributor
fent létrehozott felhasználó által hozzárendelt identitáshoz. További részletekért tekintse meg az Azure-szerepkörök hozzárendelésének lépéseit.
Hozzon létre egy új fürtöt, és rendelje hozzá az újonnan létrehozott identitást.
az aks create \
--resource-group $RG_NAME \
--name $CLUSTER_NAME \
--location $LOCATION \
--node-vm-size $VM_SKU --node-count $NODE_COUNT \
--assign-identity $IDENTITY_ID \
--generate-ssh-keys
A felhasználó által felügyelt identitást egy meglévő felügyelt fürthöz is hozzárendelheti frissítési paranccsal.
az aks update \
--resource-group $RG_NAME \
--name $CLUSTER_NAME \
--location $LOCATION \
--node-vm-size $VM_SKU \
--node-count $NODE_COUNT \
--enable-managed-identity \
--assign-identity $IDENTITY_ID
Meglévő kapacitásfoglalási csoportot társít egy csomópontkészlethez a az aks nodepool add
parancs használatával, és adjon meg egy kapacitásfoglalási csoportot a --crg-id
jelölővel. Az alábbi példa feltételezi, hogy rendelkezik egy "myCRG" nevű CRG-vel.
RG_NAME=myResourceGroup
CLUSTER_NAME=myAKSCluster
NODEPOOL_NAME=myNodepool
CRG_NAME=myCRG
CRG_ID=$(az capacity reservation group show --capacity-reservation-group $CRG_NAME --resource-group $RG_NAME --query id -o tsv)
az aks nodepool add --resource-group $RG_NAME --cluster-name $CLUSTER_NAME --name $NODEPOOL_NAME --crg-id $CRG_ID
Ha egy meglévő kapacitásfoglalási csoportot egy rendszercsomópontkészlethez szeretne társítani, a fürt és a felhasználó által hozzárendelt identitás társítása a CRG közreműködői szerepkörével és magával a CRG-vel a fürt létrehozásakor. Használja a az aks create
parancsot a és --crg-id
a --assign-identity
jelzőkkel.
IDENTITY_NAME=myID
RG_NAME=myResourceGroup
CLUSTER_NAME=myAKSCluster
NODEPOOL_NAME=myNodepool
CRG_NAME=myCRG
CRG_ID=$(az capacity reservation group show --capacity-reservation-group $CRG_NAME --resource-group $RG_NAME --query id -o tsv)
IDENTITY_ID=$(az identity show --name $IDENTITY_NAME --resource-group $RG_NAME --query identity.id -o tsv)
az aks create \
--resource-group $RG_NAME \
--cluster-name $CLUSTER_NAME \
--crg-id $CRG_ID \
--assign-identity $IDENTITY_ID \
--generate-ssh-keys
Megjegyzés
A csomópontkészlet törlése implicit módon leválasztja a csomópontkészletet a társított kapacitásfoglalási csoportról a csomópontkészlet törlése előtt. A fürtök törlése implicit módon leválasztja a fürt összes csomópontkészletét a társított kapacitásfoglalási csoportokról.
Megjegyzés
Kapacitásfoglalási csoporttal nem frissíthet meglévő csomópontkészletet. Az ajánlott módszer egy kapacitásfoglalási csoport társítása a csomópontkészlet létrehozása során.
Előfordulhat, hogy különböző virtuálisgép-méretekkel és képességekkel rendelkező csomópontkészleteket kell létrehoznia. Létrehozhat például egy csomópontkészletet, amely nagy mennyiségű CPU-t vagy memóriát tartalmazó csomópontokat tartalmaz, vagy egy GPU-támogatást nyújtó csomópontkészletet. A következő szakaszban a aints és a tolerations segítségével tájékoztatja a Kubernetes-ütemezőt, hogyan korlátozhatja az ezeken a csomópontokon futtatható podok hozzáférését.
Az alábbi példában létrehozunk egy GPU-alapú csomópontkészletet, amely a Standard_NC6s_v3 virtuális gép méretét használja. Ezeket a virtuális gépeket az NVIDIA Tesla K80 kártya működteti. További információ: Elérhető méretek Linux rendszerű virtuális gépekhez az Azure-ban.
Hozzon létre egy csomópontkészletet a az aks node pool add
paranccsal. Adja meg a gpunodepool nevet, és használja a --node-vm-size
paramétert a Standard_NC6 méretének megadásához.
az aks nodepool add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name gpunodepool \
--node-count 1 \
--node-vm-size Standard_NC6s_v3 \
--no-wait
Ellenőrizze a csomópontkészlet állapotát a az aks nodepool list
paranccsal.
az aks nodepool list --resource-group myResourceGroup --cluster-name myAKSCluster
Az alábbi példakimenet azt mutatja, hogy a gpunodepool csomópontkészlete csomópontok létrehozása a megadott VmSize használatával:
[
{
...
"count": 1,
...
"name": "gpunodepool",
"orchestratorVersion": "1.15.7",
...
"provisioningState": "Creating",
...
"vmSize": "Standard_NC6s_v3",
...
},
{
...
"count": 2,
...
"name": "nodepool1",
"orchestratorVersion": "1.15.7",
...
"provisioningState": "Succeeded",
...
"vmSize": "Standard_DS2_v2",
...
}
]
A gpunodepool sikeres létrehozása néhány percet vesz igénybe.
Csomópontkészlet létrehozásakor hozzáadhat hozzá fertőzötteket, címkéket vagy címkéket. Ha fertőzöttet, címkét vagy címkét ad hozzá, a csomópontkészlet összes csomópontja is megkapja ezt a fertőzöttet, címkét vagy címkét.
Fontos
A csomópontokhoz a teljes csomópontkészlethez az aks nodepool
hozzá kell adni a fertőzöttségeket, a címkéket vagy a címkéket. Nem javasoljuk kubectl
, hogy használjon fertőzöttségeket, címkéket vagy címkéket a csomópontkészlet egyes csomópontjaira.
Az AKS kétféle csomópont-fertőzést támogat: a csomópont-fertőzötteket és a csomópont inicializálását (előzetes verzió). További információt az Azure Kubernetes Service (AKS) fürt csomópont-tárolóinak használata című témakörben talál.
További információ a Kubernetes ütemezett funkcióinak használatáról: Ajánlott eljárások az AKS speciális ütemezőfunkcióihoz
Az előző lépésben alkalmazta a sku=gpu:NoSchedule taint értéket a csomópontkészlet létrehozásakor. Az alábbi példa YAML-jegyzék egy tolerancia használatával teszi lehetővé a Kubernetes-ütemező számára, hogy NGINX-podot futtasson az adott csomópontkészlet egyik csomópontján.
Hozzon létre egy fájlt, nginx-toleration.yaml
és másolja a következő yaML-példában.
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- image: mcr.microsoft.com/oss/nginx/nginx:1.15.9-alpine
name: mypod
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 1
memory: 2G
tolerations:
- key: "sku"
operator: "Equal"
value: "gpu"
effect: "NoSchedule"
Ütemezze a podot a kubectl apply
parancs használatával.
kubectl apply -f nginx-toleration.yaml
A pod ütemezése és az NGINX-rendszerkép lekérése néhány másodpercet vesz igénybe.
Ellenőrizze az állapotot a kubectl describe pod
parancs használatával.
kubectl describe pod mypod
A következő tömörített példakimenet a sku=gpu:NoSchedule toleration alkalmazásával jelenik meg. Az események szakaszban az ütemező hozzárendelte a podot az aks-taintnp-28993262-vmss000000 csomóponthoz:
[...]
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
sku=gpu:NoSchedule
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 4m48s default-scheduler Successfully assigned default/mypod to aks-taintnp-28993262-vmss000000
Normal Pulling 4m47s kubelet pulling image "mcr.microsoft.com/oss/nginx/nginx:1.15.9-alpine"
Normal Pulled 4m43s kubelet Successfully pulled image "mcr.microsoft.com/oss/nginx/nginx:1.15.9-alpine"
Normal Created 4m40s kubelet Created container
Normal Started 4m40s kubelet Started container
Csak azok a podok ütemezhetők a aintnp csomópontjaira, amelyeknél ez a toleranciát alkalmazzák. Minden más pod ütemezve van a nodepool1 csomópontkészletben. Ha több csomópontkészletet hoz létre, a aints és a tolerations használatával korlátozhatja, hogy mely podok ütemezhetők ezeken a csomópont-erőforrásokon.
További információ: Címkék használata Azure Kubernetes Service-fürtben (AKS).
További információ: Azure-címkék használata az Azure Kubernetes Service-ben (AKS).
Ha Azure Resource Manager-sablont használ erőforrások létrehozásához és kezeléséhez, módosíthatja a sablon beállításait, és újra üzembe helyezheti az erőforrások frissítéséhez. Az AKS-csomópontkészletekkel nem frissítheti a kezdeti csomópontkészlet-profilt az AKS-fürt létrehozása után. Ez a viselkedés azt jelenti, hogy nem frissíthet meglévő Resource Manager-sablonokat, nem módosíthatja a csomópontkészleteket, majd újra üzembe helyezheti a sablont. Ehelyett létre kell hoznia egy külön Resource Manager-sablont, amely frissíti a meglévő AKS-fürt csomópontkészleteit.
Hozzon létre például egy sablont, aks-agentpools.json
és illessze be a következő példajegyzékbe. Ügyeljen arra, hogy szükség szerint szerkessze az értékeket. Ez a példasablon a következő beállításokat konfigurálja:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"clusterName": {
"type": "string",
"metadata": {
"description": "The name of your existing AKS cluster."
}
},
"location": {
"type": "string",
"metadata": {
"description": "The location of your existing AKS cluster."
}
},
"agentPoolName": {
"type": "string",
"defaultValue": "myagentpool",
"metadata": {
"description": "The name of the agent pool to create or update."
}
},
"vnetSubnetId": {
"type": "string",
"defaultValue": "",
"metadata": {
"description": "The Vnet subnet resource ID for your existing AKS cluster."
}
}
},
"variables": {
"apiVersion": {
"aks": "2020-01-01"
},
"agentPoolProfiles": {
"maxPods": 30,
"osDiskSizeGB": 0,
"agentCount": 3,
"agentVmSize": "Standard_DS2_v2",
"osType": "Linux",
"vnetSubnetId": "[parameters('vnetSubnetId')]"
}
},
"resources": [
{
"apiVersion": "2020-01-01",
"type": "Microsoft.ContainerService/managedClusters/agentPools",
"name": "[concat(parameters('clusterName'),'/', parameters('agentPoolName'))]",
"location": "[parameters('location')]",
"properties": {
"maxPods": "[variables('agentPoolProfiles').maxPods]",
"osDiskSizeGB": "[variables('agentPoolProfiles').osDiskSizeGB]",
"count": "[variables('agentPoolProfiles').agentCount]",
"vmSize": "[variables('agentPoolProfiles').agentVmSize]",
"osType": "[variables('agentPoolProfiles').osType]",
"type": "VirtualMachineScaleSets",
"vnetSubnetID": "[variables('agentPoolProfiles').vnetSubnetId]",
"orchestratorVersion": "1.15.7"
}
}
]
}
Helyezze üzembe a sablont a az deployment group create
paranccsal.
az deployment group create \
--resource-group myResourceGroup \
--template-file aks-agentpools.json
Tipp.
A sablon címketulajdonságának hozzáadásával címkét adhat hozzá a csomópontkészlethez, ahogyan az alábbi példában látható:
...
"resources": [
{
...
"properties": {
...
"tags": {
"name1": "val1"
},
...
}
}
...
Az AKS-fürt frissítése a Resource Manager-sablonban megadott csomópontkészlet-beállításoktól és műveletektől függően eltarthat néhány percig.
Azure Kubernetes Service-visszajelzés
A(z) Azure Kubernetes Service egy nyílt forráskód projekt. Visszajelzés adásához válasszon egy hivatkozást:
Oktatás
Modul
Azure Pipeline-ügynökök és -készletek kezelése - Training
Azure Pipeline-ügynökök és -készletek kezelése