我在哪个实例中,然后是哪个主机?

时间:2018-08-27 02:54:09

标签: kubernetes

我可以通过公共IP登录工作终端,并通过

列出所有nodes
kubectl get nodes # only gives me internal IPs

,还可以通过

查看基本信息
kubectl cluster-info

和当前实例的基本IP信息,通过:

ifconfig # but this gives me public IP not internal

问题是我不知道如何确定我目前位于的哪个节点:master?哪个主机(有几个主机)还是一个从机?那是哪个奴隶呢?

感谢您的帮助;)

1 个答案:

答案 0 :(得分:1)

其中一些命令可能会根据您的Kubernetes集群显示不同的输出,我在这里显示了GKE的示例。

您可以使用-owide选项获取一些其他信息:

$kubectl get nodes -owide
NAME                           STATUS    ROLES     AGE       VERSION        EXTERNAL-IP      OS-IMAGE            KERNEL-VERSION   CONTAINER-RUNTIME
gke-test-pool2-772ceaec-0tzf   Ready     <none>    23h       v1.9.7-gke.5   35.200.255.186   Container-Optimized OS from Google   4.4.111+         docker://17.3.2
gke-test-pool2-772ceaec-1722   Ready     <none>    20h       v1.9.7-gke.5   35.200.152.18    Container-Optimized OS from Google   4.4.111+         docker://17.3.2

从上面的输出中,您可以使用:

  • 外部IP-节点的IP地址(可能会因您的设置而异)
  • 角色-在这种情况下为空,指示从属节点,因为主节点未在GKE中列出。

此外,您可以使用标签来获取更多信息:

$ kubectl get --show-labels nodes
NAME                           STATUS    ROLES     AGE       VERSION        LABELS
gke-test-pool2-772ceaec-0tzf   Ready     <none>    23h       v1.9.7-gke.5   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/fluentd-ds-ready=true,beta.kubernetes.io/instance-type=n1-standard-1,beta.kubernetes.io/os=linux,cloud.google.com/gke-nodepool=pool2,cloud.google.com/gke-preemptible=true,failure-domain.beta.kubernetes.io/region=asia-south1,failure-domain.beta.kubernetes.io/zone=asia-south1-b,kubernetes.io/hostname=gke-test-pool2-772ceaec-0tzf
gke-test-pool2-772ceaec-1722   Ready     <none>    20h       v1.9.7-gke.5   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/fluentd-ds-ready=true,beta.kubernetes.io/instance-type=n1-standard-1,beta.kubernetes.io/os=linux,cloud.google.com/gke-nodepool=pool2,cloud.google.com/gke-preemptible=true,failure-domain.beta.kubernetes.io/region=asia-south1,failure-domain.beta.kubernetes.io/zone=asia-south1-b,kubernetes.io/hostname=gke-test-pool2-772ceaec-1722

从此输出中,您可以:

  • 标签中的节点池告诉我它是pool2工作池/从属池的一部分
  • 根据您的设置,标签中的主机名可能会有所帮助。

您可以将以上信息与ifconfig进行匹配,以找出节点的IP。最后-登录的终端不必是集群中的节点之一。

最后,它很可能是配置了Kubeconfigkubectl的群集外部节点。