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