欢迎访问机房运维工作室

爱数知识库

AnyRobot 部署完成后,namespace anyrobot 中的部分 Pod 无法启动,事件中提示错误信息:0_1 nodes are avalilab

频道:爱数知识库 日期: 浏览:24

AnyRobot 部署完成后,namespace anyrobot 中的部分 Pod 无法启动,事件中提示错误信息:0/1 nodes are avalilable: 1 node(s) didn't

关键字

Pod、标签

适用产品

  • AnyRobot Eyes 5.0.2.7 及以上版本


问题描述

AnyRobot 部署完毕后,命名空间 anyrobot 中部分 Pod 无法启动,执行命令 kubectl describe pod <无法启动的 Pod 名称> -n anyrobot 查看该 Pod 的事件,提示以下错误信息:

0/1 nodes are avalilable: 1 node(s) didn't match Pod's node affinity/selector


问题影响

AnyRobot 无法运行


问题原因

AnyRobot 部署时,没有为节点添加标签,导致 Pod 无法调度到节点上。

解决方案

为了解决该问题,需要为 AnyRobot 的节点添加 anyrobot-app-data 标签,请按照以下步骤执行:

1.登录 AnyRobot 后台,执行以下命令,为 AnyRobot 的节点添加标签;

kubectl label nodes $(hostname) anyrobot-app-data=true

2.执行以下命令,重启命名空间 anyrobot 中未运行的 Pod:

kubectl get pod -n anyrobot |grep -v NAME |grep -v Runing |grep -v Completed|awk '{print $1}'|xargs kubectl delete pod -n anyrobot

更多信息

在 Kubernetes 中,节点标签用于标识节点的属性或者特征,这些标签允许 K8S 基于节点的特性对 Pod 进行调度,可以通过以下命令来查看节点的标签

kubectl get nodes --show labels