我一直致力于将窗口容器从Azure容器注册中心部署到Azure容器服务中心,并与Kubernetes乐团合作,以前一直很好。现在我正在尝试创建一个由windows组成的are集群,但是create命令只是创建一个主节点,在部署时我得到了以下错误----没有可用的节点匹配以下所有谓词::MatchNodeSelector (1)
我遵循这个链接https://learn.microsoft.com/en-us/azure/container-service/kubernetes/container-service-kubernetes-windows-walkthrough来创建基于窗口的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)
发布于 2019-05-23 07:29:16
正如文档所指出的,反对以Kubernetes为目标的ACS。您希望使用AKS (Azure Kubernetes as A Service)。
要做到这一点,请从这里开始:https://learn.microsoft.com/en-us/azure/aks/windows-container-cli
如果您选择在本地安装CLI的最新版本或使用蔚蓝云壳,请确保在您的计算机上安装了它。
遵循其余步骤的指南,因为它将引导您完成这些命令。
发布于 2019-05-23 22:00:41
对于您的问题,我知道可能的原因是您需要启用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
显示如下所示:
但正如你所知道的,ACS会受到反对。因此,我建议您在预览版本中使用带有Windows节点的AKS。或者您可以使用aks发动机,因为AKS引擎是ACS引擎项目的下一个版本。
https://stackoverflow.com/questions/56276596
复制相似问题