Служба контейнеров Azure не создает узлы агента

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

Я перешел по этой ссылке https://docs.microsoft.com/en-us/azure/container-service/kubernetes/container-service-kubernetes-windows-walkthrough для создания кластера кубернетов на базе 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 в кластере.

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


person Hub    schedule 23.05.2019    source источник
comment
AKS теперь поддерживает контейнеры Windows в форме предварительного просмотра. Попробуйте вместо этого AKS   -  person Gregory Suvalian    schedule 23.05.2019
comment
Да, я знаю, но раньше у меня все работало нормально.   -  person Hub    schedule 23.05.2019
comment
Насколько я понимаю, ACS обесценивается, поэтому не уверен, зачем вам тратить циклы на устранение неисправностей мертвой технологии.   -  person Gregory Suvalian    schedule 23.05.2019


Ответы (2)


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

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

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

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

person Kevin    schedule 23.05.2019

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

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

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

Затем я пробую команду с дополнительным параметром --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 отображается, как показано ниже:

введите здесь описание изображения

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

person Charles Xu    schedule 24.05.2019
comment
Когда я проверил перо предварительного просмотра Windows, он говорит, что он не зарегистрирован - Microsoft.ContainerService / WindowsPreview NotRegistered Можете ли вы сказать, как его включить? - person Hub; 24.05.2019
comment
@Hub Да, точно так же, как действие в AKS с узлом Windows. Две команды CLI: az extension add --name aks-preview и az feature register --name WindowsPreview --namespace Microsoft.ContainerService. - person Charles Xu; 24.05.2019
comment
Я думаю, что это для предварительного просмотра окон AKS, в моем случае я использую окна ACS, если это решит проблему. - person Hub; 24.05.2019
comment
хорошо, но при создании ACS отображается следующая ошибка. Развертывание шаблона «azurecli1558682305.465570415868» недопустимо в соответствии с процедурой проверки. Идентификатор отслеживания - e6ca13c4-370f-48c5-a9bb-5aed015cd3f8. Подробнее см. Внутренние ошибки. Подробнее об использовании см. aka.ms/arm-deploy. - person Hub; 24.05.2019
comment
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 - person Hub; 24.05.2019
comment
@Hub Установите значение версии, как в 1.12.7. Не оставляйте его пустым. - person Charles Xu; 24.05.2019
comment
az acs create --orchestrator-type = kubernetes --resource-group EwQIMSCloud --name = ewqimscluster --agent-count = 2 --generate-ssh-keys --windows --admin-username hubino --admin-password Omnex123 --orchestrator-version = 1.12.7 это команда, которую я использовал, но она также генерирует только главный узел - person Hub; 24.05.2019
comment
Тем не менее, при развертывании я получаю следующую ошибку: Нет доступных узлов, соответствующих всем следующим предикатам: MatchNodeSelector - person Hub; 24.05.2019
comment
@Hub Вы включаете перо WindowsPreview? - person Charles Xu; 24.05.2019
comment
@Hub Может быть, вы можете просто проверить, включено ли перо WindowsPreview, затем скопировать команду CLI из моего ответа и просто изменить значения некоторых параметров. --orchestrator-version доступен только в некоторых местоположения. - person Charles Xu; 27.05.2019
comment
Я уже включил предварительный просмотр окон, проверю в другом месте - person Hub; 27.05.2019
comment
@Hub ACS хорошо работает на моей стороне, какое место вы используете? Может, я смогу пройти для тебя тест. - person Charles Xu; 27.05.2019
comment
Я использую Centralus - person Hub; 27.05.2019
comment
@Hub Я также просто получаю мастер в центральном месте, даже если узел уже успешно создан. Вы можете попробовать локацию westcentralus. - person Charles Xu; 27.05.2019
comment
Я пробовал все предоставленные вами решения, но они не работают. Я уже поднял заявку в службу поддержки в Azure, большое спасибо за вашу помощь. - person Hub; 27.05.2019