Служба контейнеров Azure не создает узлы агентов - PullRequest
0 голосов
/ 23 мая 2019

Я работал над развертыванием контейнера Windows из реестра контейнеров Azure в службу контейнеров Azure с оркестром Kubernetes, который ранее работал нормально.Сейчас я пытаюсь создать кластер окон acs kubernetes, но команда create создает только главный узел, и при развертывании я получаю следующую ошибку Нет доступных узлов, которые соответствуют всем следующим предикатам :: MatchNodeSelector(1)

Я перешел по этой ссылке https://docs.microsoft.com/en-us/azure/container-service/kubernetes/container-service-kubernetes-windows-walkthrough, чтобы создать кластер kubernetes на основе Windows.

Это команда, которую я использовал для создания кластера

az acs create --orchestrator-type=kubernetes \
    --resource-group myResourceGroup \
    --name=myK8sCluster \
    --agent-count=2 \
    --generate-ssh-keys \
    --windows --admin-username azureuser \
    --admin-password myPassword12

Согласно приведенной выше документации, приведенная выше команда должна создать кластер с именем myK8sCluster с одним главным узлом Linux и двумя узлами агента Windows.

Чтобы проверить создание кластера, я использовал приведенное ниже.команда

kubectl get nodes

NAME                    STATUS  AGE       VERSION
k8s-master-98dc3136-0   Ready   5m        v1.7.7

Согласно приведенной выше команде, она показывает, что она создала только главный узел Linux, а не два узла агента Windows.

Но в моем случае мне требуются узлы агента Windowsразвернуть контейнер на базе Windows в кластере.

Поэтому я предполагаю, что из-за этого я получаю следующую ошибку while развертывание Нет доступных узлов, соответствующих всем следующим предикатам :: MatchNodeSelector (1)

Ответы [ 2 ]

1 голос
/ 23 мая 2019

Как указывается в документации, ACS с целью Kubernetes устарела. Вы хотите использовать AKS (Azure Kubernetes как сервис).

Чтобы начать, начните здесь: https://docs.microsoft.com/en-us/azure/aks/windows-container-cli

Убедитесь, что на вашем компьютере установлена ​​ последняя версия CLI , если вы решите сделать это локально, или используйте Azure Cloud Shell .

Следуйте инструкциям на остальных этапах, поскольку он проведет вас через команды.

0 голосов
/ 24 мая 2019

Для вашей проблемы, как я знаю, возможная причина в том, что вам нужно включить перо WindowsPreview.Вы можете проверить команду CLI следующим образом:

az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/WindowsPreview')].{Name:name,State:properties.state}"

Когда все в порядке, вам также нужно обратить внимание на версию Kubernetes.Когда я использую команду, которую вы использовали, тогда узлы Windows создаются успешно, но это просто показывает мастер, когда я выполняю команду kubectl get nodes.Даже если я вижу узел Windows в группе.

Затем я пробую команду с дополнительным параметром --orchestrator-version и задаю значение 1.12.7, а всю команду, как показано ниже:

az acs create --orchestrator-type=kubernetes \
    --resource-group myResourceGroup \
    --name=myK8sCluster \
    --agent-count=2 \
    --generate-ssh-keys \
    --windows --admin-username azureuser \
    --admin-password myPassword12 \
    --orchestrator-version \
    --location westcentralus

Тогда это работает хорошо, и команда kubectl get nodes -o wide показывается так, как показано ниже:

enter image description here

Но, как вы знаете, ACS будет устаревшей.Поэтому я бы предложил вам использовать AKS с узлом Windows в предварительной версии.Или вы можете использовать aks-engine , поскольку AKS Engine - это следующая версия проекта ACS-Engine.

...