Share via


Csomópontkészletek átméretezése az Azure Kubernetes Service-ben (AKS)

Az egyre több üzemelő példány miatt vagy a nagyobb munkaterhelés biztosítása érdekében célszerű módosítani a virtuálisgép-méretezési csoport előfizetését vagy átméretezni az AKS-példányokat. Az AKS támogatási szabályzatai szerint azonban:

Az AKS-ügynökcsomópontok normál Azure IaaS-erőforrásként jelennek meg az Azure Portalon. Ezek a virtuális gépek azonban egy egyéni Azure-erőforráscsoportba vannak üzembe helyezve (általában MC_*előtaggal). Az IaaS API-k vagy erőforrások használatával nem hajthat végre közvetlen testreszabásokat ezeken a csomópontokon. Az AKS API-val nem végzett egyéni módosítások nem maradnak meg frissítéssel, méretezéssel, frissítéssel vagy újraindítással.

Az adatmegőrzés hiánya az átméretezési műveletre is vonatkozik, így az AKS-példányok ilyen módon történő átméretezése nem támogatott. Ebben az útmutatóban megismerheti a forgatókönyv megoldásához javasolt módszert.

Fontos

Ez a módszer a virtuálisgép-méretezési csoportalapú AKS-fürtökre vonatkozik. Virtuálisgép-rendelkezésre állási csoportok használatakor fürtönként csak egy csomópontkészletet használhat.

Példaerőforrások

Tegyük fel, hogy át szeretne méretezni egy meglévő csomópontkészletet, amelynek neve nodepool1sKU-méretről Standard_DS2_v2 Standard_DS3_v2. A feladat elvégzéséhez létre kell hoznia egy új csomópontkészletet Standard_DS3_v2 használatával, át kell helyeznie a számítási feladatokat az új csomópontkészletbe nodepool1 , és el kell távolítania nodepool1. Ebben a példában ezt az új csomópontkészletet mynodepoolhívjuk meg.

Screenshot of the Azure portal page for the cluster, navigated to Settings > Node pools. One node pool, named node pool 1, is shown.

kubectl get nodes

NAME                                STATUS   ROLES   AGE   VERSION
aks-nodepool1-31721111-vmss000000   Ready    agent   10d   v1.21.9
aks-nodepool1-31721111-vmss000001   Ready    agent   10d   v1.21.9
aks-nodepool1-31721111-vmss000002   Ready    agent   10d   v1.21.9
kubectl get pods -o wide -A

NAMESPACE     NAME                                  READY   STATUS    RESTARTS   AGE     IP           NODE                                NOMINATED NODE   READINESS GATES
default       sampleapp2-74b4b974ff-676sz           1/1     Running   0          93m     10.244.1.6   aks-nodepool1-31721111-vmss000002   <none>           <none>
default       sampleapp2-76b6c4c59b-pfgbh           1/1     Running   0          94m     10.244.1.5   aks-nodepool1-31721111-vmss000002   <none>           <none>
kube-system   azure-ip-masq-agent-4n66k             1/1     Running   0          10d     10.240.0.6   aks-nodepool1-31721111-vmss000002   <none>           <none>
kube-system   azure-ip-masq-agent-9p4c8             1/1     Running   0          10d     10.240.0.4   aks-nodepool1-31721111-vmss000000   <none>           <none>
kube-system   azure-ip-masq-agent-nb7mx             1/1     Running   0          10d     10.240.0.5   aks-nodepool1-31721111-vmss000001   <none>           <none>
kube-system   coredns-845757d86-dtvvs               1/1     Running   0          10d     10.244.0.2   aks-nodepool1-31721111-vmss000000   <none>           <none>
kube-system   coredns-845757d86-x27pp               1/1     Running   0          10d     10.244.2.3   aks-nodepool1-31721111-vmss000001   <none>           <none>
kube-system   coredns-autoscaler-5f85dc856b-nfrmh   1/1     Running   0          10d     10.244.2.4   aks-nodepool1-31721111-vmss000001   <none>           <none>
kube-system   csi-azuredisk-node-9nfzt              3/3     Running   0          10d     10.240.0.4   aks-nodepool1-31721111-vmss000000   <none>           <none>
kube-system   csi-azuredisk-node-bblsb              3/3     Running   0          10d     10.240.0.5   aks-nodepool1-31721111-vmss000001   <none>           <none>
kube-system   csi-azuredisk-node-tjhj4              3/3     Running   0          10d     10.240.0.6   aks-nodepool1-31721111-vmss000002   <none>           <none>
kube-system   csi-azurefile-node-9pcr8              3/3     Running   0          3d10h   10.240.0.6   aks-nodepool1-31721111-vmss000002   <none>           <none>
kube-system   csi-azurefile-node-bh2pc              3/3     Running   0          3d10h   10.240.0.5   aks-nodepool1-31721111-vmss000001   <none>           <none>
kube-system   csi-azurefile-node-h75gq              3/3     Running   0          3d10h   10.240.0.4   aks-nodepool1-31721111-vmss000000   <none>           <none>
kube-system   konnectivity-agent-6cd55c69cf-ngdlb   1/1     Running   0          10d     10.240.0.6   aks-nodepool1-31721111-vmss000002   <none>           <none>
kube-system   konnectivity-agent-6cd55c69cf-rvvqt   1/1     Running   0          10d     10.240.0.4   aks-nodepool1-31721111-vmss000000   <none>           <none>
kube-system   kube-proxy-4wzx7                      1/1     Running   0          10d     10.240.0.4   aks-nodepool1-31721111-vmss000000   <none>           <none>
kube-system   kube-proxy-g5tvr                      1/1     Running   0          10d     10.240.0.6   aks-nodepool1-31721111-vmss000002   <none>           <none>
kube-system   kube-proxy-mrv54                      1/1     Running   0          10d     10.240.0.5   aks-nodepool1-31721111-vmss000001   <none>           <none>
kube-system   metrics-server-774f99dbf4-h52hn       1/1     Running   1          3d10h   10.244.1.3   aks-nodepool1-31721111-vmss000002   <none>           <none>

Új csomópontkészlet létrehozása a kívánt termékváltozattal

Az az aks nodepool add paranccsal hozzon létre egy új csomópontkészletet mynodepool három csomóponttal a Standard_DS3_v2 virtuálisgép-termékváltozat használatával:

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --node-count 3 \
    --node-vm-size Standard_DS3_v2 \
    --mode System \
    --no-wait

Feljegyzés

Minden AKS-fürtnek legalább egy, legalább egy csomóponttal rendelkező rendszercsomópontkészletet kell tartalmaznia. A fenti példában az egyiket --modeSystemhasználjuk, mivel a fürtnek csak egy csomópontkészlete van, ezért egy System csomópontkészletre van szükség a lecseréléséhez. A csomópontkészletek üzemmódja bármikor frissíthető.

Átméretezéskor mindenképpen vegye figyelembe az egyéb követelményeket, és ennek megfelelően konfigurálja a csomópontkészletet. Előfordulhat, hogy módosítania kell a fenti parancsot. A konfigurációs beállítások teljes listáját az az aks nodepool add reference page(Az aks nodepool add reference page) találja.

Néhány perc múlva létrejött az új csomópontkészlet:

Screenshot of the Azure portal page for the cluster, navigated to Settings > Node pools. Two node pools, named node pool 1 and my node pool are shown.

kubectl get nodes

NAME                                 STATUS   ROLES   AGE   VERSION
aks-mynodepool-20823458-vmss000000   Ready    agent   23m   v1.21.9
aks-mynodepool-20823458-vmss000001   Ready    agent   23m   v1.21.9
aks-mynodepool-20823458-vmss000002   Ready    agent   23m   v1.21.9
aks-nodepool1-31721111-vmss000000    Ready    agent   10d   v1.21.9
aks-nodepool1-31721111-vmss000001    Ready    agent   10d   v1.21.9
aks-nodepool1-31721111-vmss000002    Ready    agent   10d   v1.21.9

A meglévő csomópontok kordonozása

A kordonálás nem ütemezhetőként jelöli meg a megadott csomópontokat, és megakadályozza, hogy további podok legyenek hozzáadva a csomópontokhoz.

Először szerezze be azoknak a csomópontoknak a nevét, amellyel a kordont szeretné használni kubectl get nodes. A kimenetnek a következőhöz hasonlóan kell kinéznie:

NAME                                STATUS   ROLES   AGE     VERSION
aks-nodepool1-31721111-vmss000000   Ready    agent   7d21h   v1.21.9
aks-nodepool1-31721111-vmss000001   Ready    agent   7d21h   v1.21.9
aks-nodepool1-31721111-vmss000002   Ready    agent   7d21h   v1.21.9

kubectl cordon <node-names>Ezután adja meg a kívánt csomópontokat egy szóközzel elválasztott listában:

kubectl cordon aks-nodepool1-31721111-vmss000000 aks-nodepool1-31721111-vmss000001 aks-nodepool1-31721111-vmss000002
node/aks-nodepool1-31721111-vmss000000 cordoned
node/aks-nodepool1-31721111-vmss000001 cordoned
node/aks-nodepool1-31721111-vmss000002 cordoned

A meglévő csomópontok kiürítése

Fontos

A csomópontok kiürítéséhez és a futó podok kiürítéséhez győződjön meg arról, hogy minden PodDisruptionBudgets (PDB) lehetővé teszi, hogy egyszerre legalább egy podreplika áthelyezhető legyen. Ellenkező esetben a kiürítési/kiürítési művelet sikertelen lesz. Ennek ellenőrzéséhez futtathatja kubectl get pdb -A és ellenőrizheti ALLOWED DISRUPTIONS , hogy legalább egy vagy több-e.

A csomópontok ürítése miatt a rajtuk futó podok ki lesznek ürítve, és újra létrejönnek a másik, áttelepíthető csomóponton.

Csomópontok kiürítéséhez használja kubectl drain <node-names> --ignore-daemonsets --delete-emptydir-dataismét a csomópontnevek szóközzel elválasztott listáját:

Fontos

A használat --delete-emptydir-data szükséges az AKS által létrehozott coredns és metrics-server podok kiürítéséhez. Ha nem használja ezt a jelzőt, hiba várható. További információkért tekintse meg az emptydir dokumentációját.

kubectl drain aks-nodepool1-31721111-vmss000000 aks-nodepool1-31721111-vmss000001 aks-nodepool1-31721111-vmss000002 --ignore-daemonsets --delete-emptydir-data

A leeresztési művelet befejeződése után a démonkészletek által ellenőrzött podokon kívül minden pod fut az új csomópontkészleten:

kubectl get pods -o wide -A

NAMESPACE     NAME                                  READY   STATUS    RESTARTS   AGE     IP           NODE                                 NOMINATED NODE   READINESS GATES
default       sampleapp2-74b4b974ff-676sz           1/1     Running   0          15m     10.244.4.5   aks-mynodepool-20823458-vmss000002   <none>           <none>
default       sampleapp2-76b6c4c59b-rhmzq           1/1     Running   0          16m     10.244.4.3   aks-mynodepool-20823458-vmss000002   <none>           <none>
kube-system   azure-ip-masq-agent-4n66k             1/1     Running   0          10d     10.240.0.6   aks-nodepool1-31721111-vmss000002    <none>           <none>
kube-system   azure-ip-masq-agent-9p4c8             1/1     Running   0          10d     10.240.0.4   aks-nodepool1-31721111-vmss000000    <none>           <none>
kube-system   azure-ip-masq-agent-nb7mx             1/1     Running   0          10d     10.240.0.5   aks-nodepool1-31721111-vmss000001    <none>           <none>
kube-system   azure-ip-masq-agent-sxn96             1/1     Running   0          49m     10.240.0.9   aks-mynodepool-20823458-vmss000002   <none>           <none>
kube-system   azure-ip-masq-agent-tsq98             1/1     Running   0          49m     10.240.0.8   aks-mynodepool-20823458-vmss000001   <none>           <none>
kube-system   azure-ip-masq-agent-xzrdl             1/1     Running   0          49m     10.240.0.7   aks-mynodepool-20823458-vmss000000   <none>           <none>
kube-system   coredns-845757d86-d2pkc               1/1     Running   0          17m     10.244.3.2   aks-mynodepool-20823458-vmss000000   <none>           <none>
kube-system   coredns-845757d86-f8g9s               1/1     Running   0          17m     10.244.5.2   aks-mynodepool-20823458-vmss000001   <none>           <none>
kube-system   coredns-autoscaler-5f85dc856b-f8xh2   1/1     Running   0          17m     10.244.4.2   aks-mynodepool-20823458-vmss000002   <none>           <none>
kube-system   csi-azuredisk-node-7md2w              3/3     Running   0          49m     10.240.0.7   aks-mynodepool-20823458-vmss000000   <none>           <none>
kube-system   csi-azuredisk-node-9nfzt              3/3     Running   0          10d     10.240.0.4   aks-nodepool1-31721111-vmss000000    <none>           <none>
kube-system   csi-azuredisk-node-bblsb              3/3     Running   0          10d     10.240.0.5   aks-nodepool1-31721111-vmss000001    <none>           <none>
kube-system   csi-azuredisk-node-lcmtz              3/3     Running   0          49m     10.240.0.9   aks-mynodepool-20823458-vmss000002   <none>           <none>
kube-system   csi-azuredisk-node-mmncr              3/3     Running   0          49m     10.240.0.8   aks-mynodepool-20823458-vmss000001   <none>           <none>
kube-system   csi-azuredisk-node-tjhj4              3/3     Running   0          10d     10.240.0.6   aks-nodepool1-31721111-vmss000002    <none>           <none>
kube-system   csi-azurefile-node-29w6z              3/3     Running   0          49m     10.240.0.9   aks-mynodepool-20823458-vmss000002   <none>           <none>
kube-system   csi-azurefile-node-4nrx7              3/3     Running   0          49m     10.240.0.7   aks-mynodepool-20823458-vmss000000   <none>           <none>
kube-system   csi-azurefile-node-9pcr8              3/3     Running   0          3d11h   10.240.0.6   aks-nodepool1-31721111-vmss000002    <none>           <none>
kube-system   csi-azurefile-node-bh2pc              3/3     Running   0          3d11h   10.240.0.5   aks-nodepool1-31721111-vmss000001    <none>           <none>
kube-system   csi-azurefile-node-gqqnv              3/3     Running   0          49m     10.240.0.8   aks-mynodepool-20823458-vmss000001   <none>           <none>
kube-system   csi-azurefile-node-h75gq              3/3     Running   0          3d11h   10.240.0.4   aks-nodepool1-31721111-vmss000000    <none>           <none>
kube-system   konnectivity-agent-6cd55c69cf-2bbp5   1/1     Running   0          17m     10.240.0.7   aks-mynodepool-20823458-vmss000000   <none>           <none>
kube-system   konnectivity-agent-6cd55c69cf-7xzxj   1/1     Running   0          16m     10.240.0.8   aks-mynodepool-20823458-vmss000001   <none>           <none>
kube-system   kube-proxy-4wzx7                      1/1     Running   0          10d     10.240.0.4   aks-nodepool1-31721111-vmss000000    <none>           <none>
kube-system   kube-proxy-7h8r5                      1/1     Running   0          49m     10.240.0.7   aks-mynodepool-20823458-vmss000000   <none>           <none>
kube-system   kube-proxy-g5tvr                      1/1     Running   0          10d     10.240.0.6   aks-nodepool1-31721111-vmss000002    <none>           <none>
kube-system   kube-proxy-mrv54                      1/1     Running   0          10d     10.240.0.5   aks-nodepool1-31721111-vmss000001    <none>           <none>
kube-system   kube-proxy-nqmnj                      1/1     Running   0          49m     10.240.0.9   aks-mynodepool-20823458-vmss000002   <none>           <none>
kube-system   kube-proxy-zn77s                      1/1     Running   0          49m     10.240.0.8   aks-mynodepool-20823458-vmss000001   <none>           <none>
kube-system   metrics-server-774f99dbf4-2x6x8       1/1     Running   0          16m     10.244.4.4   aks-mynodepool-20823458-vmss000002   <none>           <none>

Hibaelhárítás

Az alábbihoz hasonló hibaüzenet jelenhet meg:

Hiba a podok kiürítésekor/[podname] -n [névtér] (5s után újra próbálkozik): Nem lehet kiüríteni a podot, mert az sérti a pod megszakadási költségvetését.

A fürt alapértelmezés szerint AKS_managed podkimaradási költségvetéssel (például coredns-pdb vagy konnectivity-agent) rendelkezik 1-ből MinAvailable . Ha például két coredns pod fut, miközben az egyik újra létrejön, és nem érhető el, a másikat nem lehet befolyásolni a podok megszakadási költségvetése miatt. Ez a kezdeti coredns pod ütemezése és futtatása után megszűnik, így a második podot megfelelően kiüríti és újra létrehozza.

Tipp.

Fontolja meg a csomópontok egyenkénti ürítését a zökkenőmentesebb kiürítési élmény érdekében, és kerülje a szabályozást. További információkért lásd:

A meglévő csomópontkészlet eltávolítása

A meglévő csomópontkészlet törléséhez használja az Azure Portalt vagy az az aks nodepool delete parancsot:

az aks nodepool delete \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name nodepool1

A befejezés után a végeredmény az AKS-fürt, amely egyetlen új csomópontkészlettel rendelkezik az új, kívánt termékváltozat méretével, valamint az összes alkalmazás és pod megfelelően fut:

Screenshot of the Azure portal page for the cluster, navigated to Settings > Node pools. One node pool, named my node pool, is shown.

kubectl get nodes

NAME                                 STATUS   ROLES   AGE   VERSION
aks-mynodepool-20823458-vmss000000   Ready    agent   63m   v1.21.9
aks-mynodepool-20823458-vmss000001   Ready    agent   63m   v1.21.9
aks-mynodepool-20823458-vmss000002   Ready    agent   63m   v1.21.9

Következő lépések

A csomópontkészlet kordonozással és vízelvezetéssel történő átméretezése után további információ a több csomópontkészlet használatáról.