Как запустить спящий PowerShell в Google Kubernetes Engine с бета Windows контейнерами / узлами? - PullRequest
0 голосов
/ 30 января 2020

Не могу понять, почему такой простой модуль, как

apiVersion: v1
kind: Pod
metadata:
  name: win-test
spec:
  containers:
    - name: shell
      image: "mcr.microsoft.com/windows/servercore:1809"
      command:
        - powershell
      args:
        - "Start-Sleep"
        - "999999"
      imagePullPolicy: IfNotPresent
  nodeSelector:
    kubernetes.io/os: windows

не запускается из-за

failed to start container "4f4e02205101779ffef6e6bad6f7bc8d94da1dafa4173de5b87bb3a98508c776": Error response from daemon: CreateComputeSystem 4f4e02205101779ffef6e6bad6f7bc8d94da1dafa4173de5b87bb3a98508c776: The system cannot find the file specified. (extra info: {"SystemType":"Container","Name":"4f4e02205101779ffef6e6bad6f7bc8d94da1dafa4173de5b87bb3a98508c776","Owner":"docker","VolumePath":"\\\\?\\Volume{852ddcc4-3819-442f-8748-ab95850656ee}","IgnoreFlushesDuringBoot":true,"LayerFolderPath":"C:\\ProgramData\\docker\\windowsfilter\\4f4e02205101779ffef6e6bad6f7bc8d94da1dafa4173de5b87bb3a98508c776","Layers":[{"ID":"f19b83e5-b168-56b9-aadd-5aa5ded15656","Path":"C:\\ProgramData\\docker\\windowsfilter\\a2c514d945fb21b87e5188e8df2ac52d95d727e2c9081a526719b1a0cc504403"},{"ID":"e3aef991-6354-522e-8f9e-f68a75bbf653","Path":"C:\\ProgramData\\docker\\windowsfilter\\8a82b1f3ce35668195c9f27a15736f0b1c20cd3fcb1f99341ec56db5ce7775f1"}],"ProcessorWeight":5000,"HostName":"win-test","MappedDirectories":[{"HostPath":"c:\\var\\lib\\kubelet\\pods\\87884b53-b09b-4ec3-87e6-6cec2e1c9d43\\volumes\\kubernetes.io~secret\\default-token-nk777","ContainerPath":"c:\\var\\run\\secrets\\kubernetes.io\\serviceaccount","ReadOnly":true,"BandwidthMaximum":0,"IOPSMaximum":0,"CreateInUtilityVM":false}],"HvPartition":false,"NetworkSharedContainerName":"b84c2337fa12b3d9f7228bba3c7d0c0a321270df6c693da0bb4b08e35366b6ea"}): RunContainerError

Я ожидаю контейнер в модуле для запуска PowerShell, который затем живет 999999 секунд, прежде чем контейнер успешно выполнится.

Я использую GKE Beta Cluster 1.16.4-gke.22.

1 Ответ

1 голос
/ 05 февраля 2020

TL; DR

просто переключите версию образа контейнера на более новую, 1903:

"mcr.microsoft.com/windows/servercore:1903"

Более длинная история:

Ваша версия образа контейнера должна совпадать с версией хоста контейнера, чего нет в вашем случае (пожалуйста, ознакомьтесь с принципами, которые описывают ее на сайтах MS, здесь , включая практические примеры)

В настоящее время вы пытаетесь запустить образ контейнера с версией ОС: 10.0.17763.* поверх хоста контейнера с версией ОС: 10.0.18363.* - Я предполагаю, что ваши Windows рабочие узлы основаны на образе виртуальной машины windows -server-1909.

Пожалуйста, проверьте здесь для общей версии ОС / Отображение сборки ОС текущих Windows версий сервера.

Если вам действительно нужно запустить эту специфицированную c версию образа контейнера (1809) MS Server Core, разверните другие рабочие узлы на основе более старой (соответствующей) версии образа виртуальной машины.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...