节点存在pod在部署到Kubernetes群集时不能容忍的错误
我正在尝试将我的微服务部署到Kubernetes集群中。我的群集有一个主节点和一个工作节点。我为Kubernetes部署的研发创建了这个集群。当我尝试部署时,会收到如下的错误消息:节点存在pod在部署到Kubernetes群集时不能容忍的错误,kubernetes,Kubernetes,我正在尝试将我的微服务部署到Kubernetes集群中。我的群集有一个主节点和一个工作节点。我为Kubernetes部署的研发创建了这个集群。当我尝试部署时,会收到如下的错误消息: Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning FailedSc
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling <unknown> default-scheduler 0/2 nodes are available: 2 node(s) had taints that the pod didn't tolerate
我在这里没有找到工作节点。我用一个负载平衡器创建了一个主节点milevkub020和一个工作节点milev040。我通过以下链接查阅了Kubernetes的官方文件
我的问题
此错误是因为群集问题吗?因为我找不到群集工作节点。只有主节点。您可以运行下面的命令从主节点移除污染,然后您应该能够在该节点上部署pod
kubectl taint nodes mildevkub020 node-role.kubernetes.io/master-
kubectl taint nodes mildevkub040 node-role.kubernetes.io/master-
现在,关于为什么它显示为主节点,请检查您运行的命令,以使用kubeadm连接节点。主节点和工作节点的加入有单独的命令。当docker环境没有分配足够的资源时,您也可以得到这种污染类型的消息 例如,在Docker Desktop For Mac中,在首选项中分配更多内存/cpu/交换,这可能会解决您的问题
如果kubernetes auto scaling没有足够的节点来启动一个新的pod,这也会发生,您可能会认为描述上的CPU不足。由于我的kubernetes工作节点被关闭,我遇到了同样的问题
Manjunath-MacBook-Air:manjunath$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
aks-agentpool-****-* NotReady agent 31d v1.18.10
启动VMKubernetes worker实例后,问题得到解决
Manjunath-MacBook-Air: manjunath$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
aks-agentpool-****-* Ready agent 31d v1.18.1
我在文件里找到了这个
请记住,将群集设置为使用云控制器
manager将通过以下几种方式更改群集行为:
kubelets指定-cloud provider=external将添加污染
node.cloudprovider.kubernetes.io/uninitialized,具有以下效果
初始化期间的NoSchedule。这会将节点标记为需要
从外部控制器进行第二次初始化,然后才能
预定的工作。请注意,如果云控制器管理器
不可用,群集中的新节点将不可调度。
污染很重要,因为调度程序可能需要特定于云的
有关节点的信息,例如其区域或类型高cpu、gpu、,
高内存、现场实例等
答案已经给了你。在第一次为mac配置ingress nginx时发生了相同的污染事件。入口控制器卡在挂起状态。加倍内存和交换分配解决了这个问题。
Manjunath-MacBook-Air: manjunath$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
aks-agentpool-****-* Ready agent 31d v1.18.1