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


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

Amikor fürtöket kezel az Azure Kubernetes Service-ben (AKS), gyakran el kell különítenie a csapatokat és a számítási feladatokat. A Kubernetes-ütemezővel szabályozhatja a számítási erőforrások elosztását, vagy korlátozhatja a karbantartási események hatását.

Ez az ajánlott eljárásokkal foglalkozó cikk a Fürt operátorai számára elérhető alapvető Kubernetes-ütemezési funkciókra összpontosít. Ebben a cikkben az alábbiakkal ismerkedhet meg:

  • Erőforráskvóták 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

Ajánlott eljárások útmutatója

Erőforráskvóták tervezése és alkalmazása 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. Az erőforrás-használat monitorozása és a kvóták szükség szerinti módosítása.

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érelmeket 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 egy fejlesztési csapat vagy projekt erőforrásainak lefoglalásához és korlátozásához. Ezek a kvóták egy névtérben vannak meghatározva, és a kvóták a következő alapon állíthatók be:

  • Számítási erőforrások, például processzor és memória vagy GPU-k.
  • Tárolási erőforrások, beleértve egy adott tárolási osztály köteteinek teljes számát vagy lemezterületé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 engedélyezi túl az erőforrásokat. Ha az összesített erőforrás-kérelem ö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 összes podnak korlátozásokat vagy kéréseket kell megadnia 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.

A dev-app-team-quotas.yaml nevű alábbi YAML-jegyzék ö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 dev-apps) megadásával alkalmazható:

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

Az alkalmazásfejlesztőkkel és a 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 a Kubernetes erőforráskvótáiban talál.

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

Ajánlott eljárások útmutatója

Az alkalmazások rendelkezésre állásának fenntartásához határozza meg a podkimaradási költségvetéseket (PDB-k), hogy a fürtben legalább hány pod legyen elérhető.

Két zavaró esemény okozza a podok eltávolítását:

Nem szándékos fennakadások

A nem szándékos fennakadások olyan események, amelyek nem befolyásolják a fürt operátorának vagy az alkalmazás tulajdonosának tipikus irányítását. Tartalmaz:

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

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

  • A podok több replikája használata egy üzembe helyezés során.
  • 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éseket biztosít az önkéntes fennakadásokhoz, így megtervezheti, hogyan reagálnak az üzembe helyezések vagy replikakészletek az önkéntes megszakítási események bekövetkezésekor. A podkimaradási költségvetések használatával a fürt operátorai meghatározhatják a minimálisan elérhető vagy a maximálisan elérhetetlen erőforrásszámot.

Ha frissít egy fürtöt vagy frissít egy üzembehelyezési sablont, a Kubernetes ütemezője 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ú podot sikeresen nem ütemezi a fürt más csomópontjaira.

Tekintsünk meg egy példát egy olyan replikakészletre, amely öt, NGINX-et futtató podot futtat. A replikakészlet podjai a címkéhez app: nginx-frontendvannak rendelve. Egy önkéntes megszakítási esemény( például 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ékot is, például 60%-ot, amely lehetővé teszi, hogy automatikusan kompenzálja a replikakészletet a podok számának skálázásával.

A replikakészletben legfeljebb a nem elérhető példányok száma határozható meg. 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ék azt határozza meg, hogy a replikakészletben legfeljebb két pod nem érhető el:

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

A podkimaradási költségvetés definiálása után az AKS-fürtben hozza létre, mint bármely más Kubernetes-objektum esetén:

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 az alkalmazás megszakítási költségvetésének megadása 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-fürtműveletekkel kapcsolatos további információkért tekintse meg az alábbi ajánlott eljárásokat: