Windows HostProcess-tárolók használata

A HostProcess/Privileged tárolók kibővítik a Windows-tárolómodellt a Kubernetes-fürtkezelési forgatókönyvek szélesebb körének engedélyezéséhez. A HostProcess-tárolók közvetlenül a gazdagépen futnak, és a normál folyamathoz hasonló viselkedést és hozzáférést tartanak fenn. A HostProcess-tárolók lehetővé teszik a felhasználók számára, hogy a tárolók által biztosított verziószámozási és üzembehelyezési módszerek megőrzése mellett csomagolják és terjesszen olyan felügyeleti műveleteket és funkciókat, amelyek gazdagép-hozzáférést igényelnek.

A privileged DaemonSet a Kubernetesen végezhet módosításokat vagy figyelhet Linux-gazdagépeket, Windows-gazdagépeken azonban nem. A HostProcess-tárolók a gazdagépszint-emelés Windows-megfelelői.

Korlátozások

  • A HostProcess-tárolókhoz a Kubernetes 1.23-as vagy újabb verziója szükséges.
  • A HostProcess-tárolókhoz 1.6-os vagy újabb tároló-futtatókörnyezet szükséges containerd .
  • A HostProcess podok csak HostProcess-tárolókat tartalmazhatnak a Windows operációs rendszer korlátozása miatt. A nem emelt jogosultságú Windows-tárolók nem oszthatnak meg virtuális hálózati adaptert a gazdagép IP-névterével.
  • A HostProcess-tárolók folyamatként futnak a gazdagépen. Ezeknek a tárolóknak az egyetlen elkülönítése a gazdagéptől a HostProcess felhasználói fiókra vonatkozó erőforrás-korlátozások.
  • A fájlrendszerelkülönítés és a Hyper-V-elkülönítés a HostProcess-tárolók esetében nem támogatott.
  • A kötetcsatlakoztatások támogatottak, és a tárolókötet alá vannak szerelve. Lásd: Kötetcsatlakozások.
  • A gazdagép-felhasználói fiókok korlátozott készlete alapértelmezés szerint elérhető a gazdagépfolyamat-tárolókhoz. Lásd: Felhasználói fiók kiválasztása.
  • Az erőforráskorlátok, például a lemez, a memória és a processzorszám ugyanúgy működnek, mint a gazdagépen futó folyamatok.
  • A nevesített csőcsatlakozások és Unix-tartományi szoftvercsatornák közvetlenül nem támogatottak, de elérhetők a gazdagép elérési útján, például \\.\pipe\*.

HostProcess számítási feladat futtatása

A HostProcess-funkciók üzembe helyezéssel való használatához állítsa be a hostProcess: true és hostNetwork: true értéket:

    spec:
      ...
      securityContext:
         windowsOptions:
           hostProcess: true
           ...
      hostNetwork: true
      containers:
      ...

Ha olyan példa számítási feladatot szeretne futtatni, amely HostProcess-szolgáltatásokat használ egy windowsos csomópontokkal rendelkező meglévő AKS-fürtön, hozza létre hostprocess.yaml a következő tartalommal:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: privileged-daemonset
  namespace: kube-system
  labels:
    app: privileged-daemonset
spec:
  selector:
    matchLabels:
      app: privileged-daemonset
  template:
    metadata:
      labels:
        app: privileged-daemonset
    spec:
      nodeSelector:
        kubernetes.io/os: windows
      securityContext:
        windowsOptions:
          hostProcess: true
          runAsUserName: "NT AUTHORITY\\SYSTEM"
      hostNetwork: true
      containers:
        - name: powershell
          image: mcr.microsoft.com/powershell:lts-nanoserver-1809 # or lts-nanoserver-ltsc2022
          command:
            - powershell.exe
            - -Command
            - Start-Sleep -Seconds 2147483
      terminationGracePeriodSeconds: 0

A példa számítási feladat futtatásához használja a következőt kubectl :

kubectl apply -f hostprocess.yaml

A következő kimenetnek kell megjelennie:

$ kubectl apply -f hostprocess.yaml
daemonset.apps/privileged-daemonset created

Ellenőrizze, hogy a számítási feladat a HostProcess-tárolók funkcióit használja-e a pod naplóinak megtekintésével.

A használatával kubectl megkeresi a pod nevét a kube-system névtérben.

$ kubectl get pods --namespace kube-system

NAME                                  READY   STATUS    RESTARTS   AGE
...
privileged-daemonset-12345            1/1     Running   0          2m13s

A használatával kubectl log megtekintheti a pod naplóit, és ellenőrizheti, hogy a pod rendelkezik-e rendszergazdai jogosultságokkal:

$ kubectl logs privileged-daemonset-12345 --namespace kube-system
InvalidOperation: Unable to find type [Security.Principal.WindowsPrincipal].
Process has admin rights:

Következő lépések

A HostProcess-tárolókkal és a Microsoft kuberneteshez való hozzájárulásával kapcsolatos további információkért lásd: Alpha in v1.22: Windows HostProcess Containers.