我可以通过公共IP登录工作终端,并通过
列出所有nodes
kubectl get nodes # only gives me internal IPs
,还可以通过
查看基本信息kubectl cluster-info
和当前实例的基本IP信息,通过:
ifconfig # but this gives me public IP not internal
问题是我不知道如何确定我目前位于的哪个节点:master
?哪个主机(有几个主机)还是一个从机?那是哪个奴隶呢?
感谢您的帮助;)
答案 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
从上面的输出中,您可以使用:
此外,您可以使用标签来获取更多信息:
$ 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
从此输出中,您可以:
您可以将以上信息与ifconfig
进行匹配,以找出节点的IP。最后-登录的终端不必是集群中的节点之一。
最后,它很可能是配置了Kubeconfig
和kubectl
的群集外部节点。