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.