kubernetes - Kubectl 仅获取工作节点
问题描述
是否有任何快捷方式或 kubectl 命令或 REST API 调用来仅获取工作节点列表。(不包括主节点)
更新:对于大师,我们可以这样做:
kubectl get nodes --selector=node-role.kubernetes.io/master
对于工人,我没有看到默认创建的任何此类标签。我们可以通过反转或在选择器上做 != 之类的事情来获取。
我们也不能 grep :
C02W84XMHTD5:ucp iahmad$ kubectl get nodes | grep worker
C02W84XMHTD5:ucp iahmad$
C02W84XMHTD5:ucp iahmad$ kubectl get nodes -o wide| grep worker
C02W84XMHTD5:ucp iahmad$
C02W84XMHTD5:ucp iahmad$ kubectl get nodes -o yaml | grep worker
C02W84XMHTD5:ucp iahmad$
C02W84XMHTD5:ucp iahmad$ kubectl get nodes -o json | grep worker
C02W84XMHTD5:ucp iahmad$
我的用例是希望每分钟获取此列表以更新外部负载均衡器池,以防添加新节点,从集群中删除。事实上,我可以自己标记它们,但如果有一些默认的内置方式这样做会很有用
解决方案
您可以通过以下方式获取节点的角色/标签
kubectl get nodes --show-labels
就我而言,我确实有三个节点,每个节点都有给定的角色和标签:
NAME STATUS ROLES AGE VERSION LABELS
host01 Ready controlplane,etcd,worker 61d v1.10.5 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=host01,node-role.kubernetes.io/controlplane=true,node-role.kubernetes.io/etcd=true,node-role.kubernetes.io/worker=true
host02 Ready etcd,worker 61d v1.10.5 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=host02,node-role.kubernetes.io/etcd=true,node-role.kubernetes.io/worker=true
host03 Ready etcd,worker 61d v1.10.5 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=host03,node-role.kubernetes.io/etcd=true,node-role.kubernetes.io/worker=true
只有 host01 有标签controlplane, worker
和etcd
。另外两个有etcd
和worker
(向右滚动也可以查看标签)。
所以我可以通过
kubectl get nodes -l node-role.kubernetes.io/worker=true
NAME STATUS ROLES AGE VERSION
host01 Ready controlplane,etcd,worker 61d v1.10.5
host02 Ready etcd,worker 61d v1.10.5
host03 Ready etcd,worker 61d v1.10.5
要排除controlplane
s,您可以使用第二个标签排除它们!=true
kubectl get nodes -l node-role.kubernetes.io/worker=true,node-role.kubernetes.io/controlplane!=true
NAME STATUS ROLES AGE VERSION
host02 Ready etcd,worker 61d v1.10.5
host03 Ready etcd,worker 61d v1.10.5
请使其适应您的标签或根据您的集群设置标签。在我的例子中,它是一个Rancher 2.0集群。添加节点时,Rancher 会自动创建标签。
用于此的 API 在 Rancher 中(已附加过滤器):
/v3/clusters/c-xxxxx/nodes?worker=true&controlPlane_ne=true
推荐阅读
- python - 一些 Altair 图表褪色
- gpu - 在 Jetson NX 上安装 dlib(from source, gpu) 无法正常工作
- fonts - 使用 Konva 制作适合文本元素的自动收缩文本
- android - Android Kotlin RecyclerView 和菜单项意图将值传递给第二个活动
- python - 如何在添加总和列时合并此数据框以删除重复项?
- c# - 如何模拟 NpgsqlTransaction 和 NpgsqlConnection?
- flutter - 如何在 RxDart 中为流设置加载状态而不创建自定义对象
- java - 如何使用适用于 Chrome Windows 10 的 WebDriver 在 Eclipse (Java) 上安装 Selenium
- python - Python pandas:如果不是None(连接字符串),则合并列值,然后只保留第一行
- python - 从文件 b.py 中的函数附加到文件 a.py 后访问变量