Windows HostProcess-tárolók használata
A HostProcess/Privileged tárolók kibővítik a Windows tárolómodellt, hogy a Kubernetes-fürtkezelési forgatókönyvek szélesebb körét tegyék lehetővé. A HostProcess-tárolók közvetlenül a gazdagépen futnak, a viselkedésük és hozzáférésük pedig a normál folyamatokhoz hasonló marad. A HostProcess-tárolók lehetővé teszik a felhasználók számára a tárolók által biztosított verziószámozási és üzembehelyezési módszerek megtartása mellett a gazdagép hozzáférését igénylő felügyeleti műveleteket és funkciókat csomagolni és terjeszteni.
A kiemelt DaemonSet a Kubernetesen végezhet módosításokat vagy figyelhet Linux-gazdagépeket, windowsos gazdagépeket 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ójára van szükség.
- A HostProcess-tárolókhoz 1,6-os vagy újabb tároló-futtatókörnyezet szükséges
containerd
. - A HostProcess podok csak a Windows operációs rendszer korlátozása miatt tartalmazhatnak HostProcess-tárolókat. 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ötetcsatlakozások támogatottak, és a tárolókötet alá vannak szerelve. Lásd: Kötetcsatlakozók.
- A gazdagépfolyamat-tárolókhoz alapértelmezés szerint korlátozott számú gazdagépfelhasználói fiók érhető el. 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 lévő folyamatok.
- A nevesített csőcsatlakozók és a Unix-tartományfoglalatok közvetlenül nem támogatottak, de például a gazdagép elérési útján
\\.\pipe\*
érhetők el.
HostProcess számítási feladat futtatása
A HostProcess-funkciók központi telepítéssel való használatához állítsa be a hostProcess: true és hostNetwork: true értéket: igaz:
spec:
...
securityContext:
windowsOptions:
hostProcess: true
...
hostNetwork: true
containers:
...
Ha egy windowsos csomópontokkal rendelkező meglévő AKS-fürtön HostProcess-funkciókat használó példamunkaterhelést szeretne futtatni, hozzon 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ára használható 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 kubectl
pod nevének megkeresése 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 kubectl log
pod naplóinak megtekintéséhez és annak ellenőrzéséhez, 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 az Alpha 1.22-ben: Windows HostProcess-tárolók.
Azure Kubernetes Service