Azure容器服务未创建代理节点

时间:2019-05-23 13:41:41

标签: azure kubernetes azure-cli azure-container-service windows-container

我一直在使用Kubernetes Orchestra进行Windows容器从Azure容器注册表到Azure容器服务的部署,之前运行良好。 现在,我正在尝试创建Windows的acs kubernetes群集,但是create命令仅创建一个主节点,并且在部署时出现以下错误没有可用节点与以下所有谓词匹配:: MatchNodeSelector (1)

我已点击此链接https://docs.microsoft.com/en-us/azure/container-service/kubernetes/container-service-kubernetes-windows-walkthrough来创建基于Windows的kubernetes集群。

这是我用来创建集群的命令

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)

2 个答案:

答案 0 :(得分:0)

正如文档所指出的,不建议使用带有Kubernetes目标的ACS。您想使用AKS(Azure Kubernetes即服务)。

要解决此问题,请从这里开始:https://docs.microsoft.com/en-us/azure/aks/windows-container-cli

如果选择在本地安装latest version of the CLI,或使用Azure Cloud Shell,请确保已在计算机上安装了does not auto-polyfill

按照指南中的其余步骤进行操作,因为它会引导您完成所有命令。

答案 1 :(得分:0)

对于您的问题,据我所知,可能的原因是您需要启用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 with Windows node。或者,您可以使用aks-engine,因为AKS引擎是ACS-Engine项目的下一个版本。