如何通过命令行检测 Kubernetes 节点是否是主/控制平面?有我可以检查的环境变量吗?
Kubernetes 提供标签和选择器,可用于选择分配给节点的角色。
要选择控制平面节点,请使用选择器选择该角色:
# kubectl get nodes --selector 'node-role.kubernetes.io/controlplane'
NAME STATUS ROLES AGE VERSION
cp01 Ready controlplane,etcd 90d v1.26.1
cp02 Ready controlplane,etcd 93d v1.26.1
cp03 Ready controlplane,etcd 93d v1.26.1
要查看可用标签的列表,请以 YAML 格式打印出节点的配置,然后查看
labels:
部分:
# kubectl get nodes rcp-t-sandbox01 -o yaml
...
labels:
kubernetes.io/os: linux
node-role.kubernetes.io/controlplane: "true"
node-role.kubernetes.io/etcd: "true"
...
您可以使用
kubectl get nodes -o wide
命令获取更详细的节点列表,其中包含“角色”列。在那里您可以看到控制平面、主节点、etcd 节点有一个特殊的标签。