如何知道你的on k8s主节点?

luc*_*iet 5 kubernetes kubectl kubeadm

我正在编写一些脚本来检查系统以确保某些集群特征。在私有 IP 地址空间上运行的事物等。这些检查只是设置集群时的手动步骤,仅用于健全性检查。

它们将在每个节点上运行,但我希望其中一组在主节点上运行。是否有 bash、curl、kubectl 或其他命令包含指示当前节点是主节点的信息?

Ric*_*ico 5

主机通常具有与其关联的“主机”角色。例如:

$ kubectl get nodes
NAME                                         STATUS    ROLES     AGE       VERSION
ip-x-x-x-x.us-west-2.compute.internal        Ready     <none>    7d        v1.11.2
ip-x-x-x-x.us-west-2.compute.internal        Ready     master    78d       v1.11.2
ip-x-x-x-x.us-west-2.compute.internal        Ready     <none>    7d        v1.11.2
ip-x-x-x-x.us-west-2.compute.internal        Ready     <none>    7d        v1.11.2
ip-x-x-x-x.us-west-2.compute.internal        Ready     <none>    7d        v1.11.2
Run Code Online (Sandbox Code Playgroud)

node-role.kubernetes.io/master它还具有与其关联的标签。例如:

$ kubectl get node ip-x-x-x-x.us-west-2.compute.internal -o=yaml
apiVersion: v1
kind: Node
metadata:
  annotations:
    kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.sock
    node.alpha.kubernetes.io/ttl: "0"
    projectcalico.org/IPv4Address: x.x.x.x/20
    volumes.kubernetes.io/controller-managed-attach-detach: "true"
  creationTimestamp: 2018-07-23T21:10:22Z
  labels:
    beta.kubernetes.io/arch: amd64
    beta.kubernetes.io/instance-type: t3.medium
    beta.kubernetes.io/os: linux
    failure-domain.beta.kubernetes.io/region: us-west-2
    failure-domain.beta.kubernetes.io/zone: us-west-2c
    kubernetes.io/hostname: ip-x-x-x-x.us-west-2.compute.internal
    node-role.kubernetes.io/master: ""
Run Code Online (Sandbox Code Playgroud)