Как узнать ваш мастер-узел на k8s? - PullRequest
0 голосов
/ 10 октября 2018

Я пишу несколько сценариев, которые проверяют систему на предмет некоторых характеристик кластера.Вещи, работающие в частных пространствах IP-адресов и т. Д. Эти проверки являются просто ручным шагом при настройке кластера и используются только для проверки работоспособности.

Они будут выполняться на каждом узле, но я бы хотелих набор для запуска на главном узле.Существует ли bash, curl, kubectl или другая команда, в которой есть информация, указывающая, что текущий узел является главным узлом?

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Еще несколько способов:

$ kubectl cluster-info 
Kubernetes master is running at https://node1.example.com:8443
...

Вы можете использовать kubectl с селектором меток:

$ kubectl get nodes -l node-role.kubernetes.io/master=true
NAME                STATUS    ROLES     AGE       VERSION
node1.example.com   Ready     master    1d        v1.10.5
node2.example.com   Ready     master    1d        v1.10.5

И вы можете получить конкретные данные через jsonpath, например, главные IP /имена хостов:

$ kubectl get nodes -l node-role.kubernetes.io/master=true -o 'jsonpath={.items[*].status.addresses[?(@.type=="InternalIP")].address}'
192.168.168.197 192.168.168.198

$ kubectl get nodes -l node-role.kubernetes.io/master=true -o 'jsonpath={.items[*].status.addresses[?(@.type=="Hostname")].address}'
node1.example.com node2.example.com 
0 голосов
/ 10 октября 2018

У мастера (ов) обычно есть роль «мастера», связанная с ним.Например:

$ 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

С ним также связана метка 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: ""
...