You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Kubernetes Python API验证哪个节点是主节点

如何通过Kubernetes Python Client V1 API识别主节点

Kubernetes主节点通常会带有特定的标签或污点,你可以通过检查这些标识从节点列表中筛选出主节点,以下是具体实现方式:

方法1:检查节点角色标签

主节点一般会包含node-role.kubernetes.io/control-plane或node-role.kubernetes.io/master标签(不同K8s版本可能略有差异),遍历节点列表时可检查这些标签是否存在:

k8s_api = client.CoreV1Api()
logger.info("Getting k8s nodes...")
response = k8s_api.list_node()

# 遍历节点识别主节点
for node in response.items:
    labels = node.metadata.labels
    # 匹配control-plane或master角色标签
    if labels.get("node-role.kubernetes.io/control-plane") or labels.get("node-role.kubernetes.io/master"):
        logger.info(f"主节点名称: {node.metadata.name}")
        logger.info(f"主节点详情: {node}")

方法2:检查节点污点

主节点通常会被打上node-role.kubernetes.io/control-plane:NoSchedule类的污点,防止普通Pod调度到其上,也可通过污点判断:

k8s_api = client.CoreV1Api()
logger.info("Getting k8s nodes...")
response = k8s_api.list_node()

# 遍历节点通过污点识别主节点
for node in response.items:
    taints = node.spec.taints or []
    for taint in taints:
        if taint.key == "node-role.kubernetes.io/control-plane" and taint.effect == "NoSchedule":
            logger.info(f"主节点名称: {node.metadata.name}")
            logger.info(f"主节点详情: {node}")
            break

注意:不同Kubernetes版本的标签/污点键可能存在差异,旧版本多使用node-role.kubernetes.io/master,新版本更倾向于node-role.kubernetes.io/control-plane,两种方式结合使用可提升兼容性。

内容的提问来源于stack exchange,提问作者Hoang Do

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 13:50:23