Ajánlott eljárások a Azure Kubernetes Service (AKS) alapszintű ütemezőfunkcióihoz

A fürtök Azure Kubernetes Service (AKS) használatával történő kezelése során gyakran el kell különítenie a csoportokat és a számítási feladatokat. A Kubernetes-ütemezővel szabályozhatja a számítási erőforrások eloszlását, vagy korlátozhatja a karbantartási események hatását.

Ez az ajánlott eljárásokat ismertető cikk a kubernetes fürtüzemeltetők alapvető ütemezési funkcióival foglalkozik. Ebben a cikkben az alábbiakkal ismerkedhet meg:

  • Erőforrások kvótáinak használata a csapatok vagy számítási feladatok számára meghatározott mennyiségű erőforrás biztosításához
  • Az ütemezett karbantartás hatásának korlátozása podkimaradási költségvetések használatával

Erőforráskvóták kényszerítése

Útmutatás az ajánlott eljárásokhoz

Tervezze meg és alkalmazza az erőforráskvótákat a névtér szintjén. Ha a podok nem határoznak meg erőforrás-kérelmeket és korlátokat, utasítsa el az üzembe helyezést. Monitorozza az erőforrás-használatot, és szükség szerint módosítsa a kvótákat.

Az erőforrás-kérelmek és a korlátok a pod specifikációjában vannak elhelyezve. A Kubernetes-ütemező az üzembe helyezéskor használja a kéréseket egy elérhető csomópont megkereséséhez a fürtben. A korlátok és a kérések az egyes podok szintjén működnek. Az értékek definiálásáról további információt a Poderőforrás-kérelmek és -korlátok meghatározása című témakörben talál.

Erőforráskvótákat kell használnia ahhoz, hogy erőforráskvótákat használjon a fejlesztési csapat vagy projekt erőforrásainak lefoglalásához és korlátozásához. Ezek a kvóták egy névtéren vannak meghatározva, és a következő alapon állíthatók be kvóták:

  • Számítási erőforrások, például processzor és memória, gpu-k.
  • Tárolási erőforrások, beleértve egy adott tárolási osztály köteteinek vagy lemezterületének teljes számát.
  • Az objektumok száma, például a titkos kódok, szolgáltatások vagy feladatok maximális száma hozható létre.

A Kubernetes nem engedi túl az erőforrásokat. Ha az összesített erőforrás-kérelem teljes összege megfelel a hozzárendelt kvótának, minden további üzembe helyezés sikertelen lesz.

Erőforráskvóták meghatározásakor a névtérben létrehozott podoknak korlátokat vagy kéréseket kell megadniuk a pod specifikációiban. Ha nem adják meg ezeket az értékeket, elutasíthatja az üzembe helyezést. Ehelyett konfigurálhatja a névtér alapértelmezett kéréseit és korlátait.

Az alábbi példa YAML-jegyzékfájl neve dev-app-team-quotas.yaml, amely összesen 10 PROCESSZORt, 20Gi memóriát és 10 podot állít be:

apiVersion: v1
kind: ResourceQuota
metadata:
  name: dev-app-team
spec:
  hard:
    cpu: "10"
    memory: 20Gi
    pods: "10"

Ez az erőforráskvóta a névtér, például a dev-apps megadásával alkalmazható:

kubectl apply -f dev-app-team-quotas.yaml --namespace dev-apps

Az alkalmazásfejlesztőkkel és -tulajdonosokkal együttműködve megismerheti az igényeiket, és alkalmazhatja a megfelelő erőforráskvótákat.

Az elérhető erőforrás-objektumokról, hatókörökről és prioritásokról további információt az Erőforráskvóták a Kubernetesben című témakörben talál.

Rendelkezésre állás tervezése podkimaradási költségvetések használatával

Útmutatás az ajánlott eljárásokhoz

Az alkalmazások rendelkezésre állásának fenntartása érdekében határozza meg a podkimaradási költségvetéseket (PDB-ket), hogy a podok minimális száma elérhető legyen a fürtben.

A podok eltávolítását két zavaró esemény okozza:

Nem szándékos fennakadások

A nem szándékos fennakadások olyan események, amelyek nem befolyásolják a fürtüzemeltetőt vagy az alkalmazás tulajdonosát. Tartalmaz:

  • Hardverhiba a fizikai gépen
  • Kernelpánik
  • Csomóponti virtuális gép törlése

A nem szándékos fennakadásokat a következőkkel lehet enyhíteni:

  • A podok több replikájának használata egy üzemelő példányban.
  • Több csomópont futtatása az AKS-fürtben.

Önkéntes fennakadások

Az önkéntes fennakadások a fürt üzemeltetője vagy az alkalmazás tulajdonosa által kért események. Tartalmaz:

  • Fürtfrissítések
  • Frissített üzembehelyezési sablon
  • Pod véletlen törlése

A Kubernetes podkimaradási költségvetést biztosít az önkéntes fennakadásokhoz, így megtervezheti, hogyan reagálnak az üzemelő példányok vagy replikakészletek az önkéntes fennakadási események bekövetkezésekor. A podkimaradási költségvetések használatával a fürtüzemeltetők meghatározhatják a minimálisan elérhető vagy maximálisan elérhetetlen erőforrások számát.

Ha frissít egy fürtöt vagy frissít egy üzembehelyezési sablont, a Kubernetes-ütemező további podokat ütemez más csomópontokra, mielőtt engedélyezi az önkéntes megszakítási események folytatását. Az ütemező megvárja a csomópont újraindítását, amíg a megadott számú pod sikeresen be nem van ütemezve a fürt más csomópontjaira.

Tekintsünk meg egy példát egy olyan replikakészletre, amely öt, NGINX-et futtató podot használ. A replikakészlet podjaihoz a következő címke app: nginx-frontendvan rendelve: . Egy önkéntes megszakítási esemény, például a fürtfrissítés során legalább három pod futtatását szeretné biztosítani. A PodDisruptionBudget objektum következő YAML-jegyzékfájlja határozza meg ezeket a követelményeket:

apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
   name: nginx-pdb
spec:
   minAvailable: 3
   selector:
    matchLabels:
      app: nginx-frontend

Meghatározhat egy százalékos értéket is, például 60%-ot, amely lehetővé teszi a podok számának automatikus kiegyenlítését a replikakészlet számára.

A replikakészletben megadhatja a nem elérhető példányok maximális számát. A maximálisan elérhetetlen podok százalékos aránya is meghatározható. A következő podkimaradási költségvetés YAML-jegyzékfájlja azt határozza meg, hogy a replikakészletben legfeljebb két pod legyen elérhetetlen:

apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
   name: nginx-pdb
spec:
   maxUnavailable: 2
   selector:
    matchLabels:
      app: nginx-frontend

A podkimaradás költségvetésének meghatározása után az AKS-fürtben ugyanúgy hozza létre, mint bármely más Kubernetes-objektum esetében:

kubectl apply -f nginx-pdb.yaml

Az alkalmazásfejlesztőkkel és a tulajdonosokkal együttműködve megismerheti az igényeiket, és alkalmazhatja a podkimaradásra vonatkozó megfelelő költségvetéseket.

A podkimaradási költségvetések használatáról további információt a Megszakítási költségvetés megadása az alkalmazáshoz című témakörben talál.

Következő lépések

Ez a cikk a Kubernetes scheduler alapvető funkcióira összpontosított. Az AKS-ben végzett fürtműveletekkel kapcsolatos további információkért tekintse meg az alábbi ajánlott eljárásokat: