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


Alkalmazások adaptálása vegyes operációsrendszerű Kubernetes-fürtökben való használatra

A következőkre vonatkozik: AKS az Azure Local 22H2-n, AKS Windows Serveren

Az Arc által engedélyezett AKS lehetővé teszi a Kubernetes-fürtök linuxos és Windows-csomópontokkal való futtatását, de kis módosításokat kell végeznie az alkalmazásokon az ilyen vegyes operációsrendszer-fürtökben való használathoz. Ez az útmutató azt ismerteti, hogyan biztosítható, hogy az alkalmazás a megfelelő gazdagép operációs rendszerére legyen ütemezve csomópontválasztók, illetve aintások és tűrések használatával.

Ez a cikk a Kubernetes-fogalmak alapszintű megértését feltételezi. További információ: Kubernetes alapfogalmak az Arc által engedélyezett AKS-hez.

Csomópontválasztók

A csomópontválasztó egy egyszerű mező a pod specifikációjában, a YAML-ben, amely arra kényszeríti a podokat, hogy csak az operációs rendszernek megfelelő kifogástalan csomópontokra legyenek ütemezve. A pod specifikációjában adja meg nodeSelector a Windows vagy a Linux értékét a következő példákban látható módon:

kubernetes.io/os = Windows

vagy

kubernetes.io/os = Linux

A csomópontválasztókkal kapcsolatos további információkért tekintse meg a csomópontválasztókat.

Taints and tolerations

A hibák és a tűrések együttműködve biztosítják, hogy a podok ne legyenek véletlenül ütemezve a csomópontokon. A csomópontok "fertőzöttek" lehetnek, ha elutasítják azokat a podokat, amelyek nem tolerálják explicit módon a yaML pod-specifikációjában szereplő "tűrés" révén.

Az AKS Arc windowsos operációsrendszer-csomópontjai a New-AksHciNodePool vagy a New-AksHciCluster parancsokkal létrehozva lehetnek. Ezekkel a parancsokkal linuxos operációsrendszer-csomópontokat is megfertőzhet. Az alábbi példa a Windows-csomópontokat sérti.

Fertőzöttség alkalmazása új fürtre

Ha új fürtöt is létrehoz, futtassa az alábbi parancsot egy Windows-csomópontkészlet létrehozásához, amely fertőzött. Ha van egy meglévő fürtje, amelyhez egy fertőzött csomópontkészletet szeretne hozzáadni, tekintse meg a következő példát, amely a New-AksHciNodePool parancsot használja.

New-AksHciCluster -name mycluster -nodePoolName taintnp -nodeCount 1 -osType Windows -osSku Windows2022 -taints sku=Windows:NoSchedule

Sérült csomópontkészlet hozzáadása meglévő fürthöz

Ha fertőzött csomópontkészletet szeretne hozzáadni egy meglévő fürthöz, futtassa a következő parancsot:

New-AksHciNodePool -clusterName <cluster-name> -nodePoolNAme taintnp -count 1 -osType Windows -osSku Windows2022 -taints sku=Windows:NoSchedule

Annak ellenőrzéséhez, hogy a csomópontkészlet sikeresen üzembe lett-e helyezve a fertőzöttséggel, futtassa a következő parancsot:

Get-AksHciNodePool -clusterName <cluster-name> -name taintnp

Példa a kimenetre:

Status       : {Phase, Details}
ClusterName  : mycluster
NodePoolName : taintnp
Version      : v1.20.7-kvapkg.1
OsType       : Windows
NodeCount    : 0
VmSize       : Standard_K8S3_v1
Phase        : Deployed
Taints       : {sku=Windows:NoSchedule}

A pod tolerálásának megadása

A podok tűrését a YAML pod-specifikációban adhatja meg. Az alábbi tolerancia "megfelel" az előző példában látható fertőzött vonal által kubectl létrehozott fertőzöttségnek. Ennek az az eredménye, hogy a toleranciával rendelkező podok ütemezhetők a fertőzött csomópontokra.

tolerations:
- key: node.kubernetes.io/os
  operator: Equal
  value: Windows
  effect: NoSchedule

Az ebben a szakaszban ismertetett lépések akkor működnek jól, ha Ön felügyeli az üzembe helyezhető podspektrakciót. Bizonyos esetekben azonban a felhasználók már meglévő nagy számú üzembe helyezéssel rendelkeznek Linux-tárolókhoz, valamint olyan gyakori konfigurációk ökoszisztémáját, mint a közösségi Helm-diagramok. Csak akkor férhet hozzá a pod specifikációhoz, ha le szeretné tölteni és szerkeszteni a diagramot.

Ha ezeket a Helm-diagramokat linuxos és Windowsos munkavégző csomópontokkal rendelkező vegyes fürtkörnyezetben helyezi üzembe, az alkalmazás podjai az "ImagePullBackOff" hibával meghiúsulnak. Példa:

kubectl get pods
NAMESPACE              NAME                                                    READY   STATUS              RESTARTS   AGE
default                nginx-deployment-558fc78868-795dp                       0/1     ImagePullBackOff    0          6m24s
default                nginx-deployment-6b474476c4-gpb77                       0/1     ImagePullBackOff    0          11m

Ebben az esetben a taints használatával segíthet ebben. A Windows Server-csomópontok a kulcs-érték párral node.kubernetes.io/os=windows:NoSchedulefertőzöttek lehetnek.

További információ a fertőzöttségről és a toleranciáról: Taints and Tolerations.

Következő lépések

Ebben az útmutatóban megtanulhatta, hogyan adhat hozzá csomópontválasztókat vagy -szennyezettségeket és toleranciákat a Kubernetes-fürtökhöz a Kubectl használatával. Ezután a következőkre van lehetőség: