问题
I need to know to which master node my current worker node is connected. I can see the worker nodes by typing "kubectl get nodes" command in the master node, but I need to find the master node from the worker node itself.
In simple words, How to find the master node from the worker node in the kubernetes cluster?
回答1:
You can usually find it on your kubelet
config file: /etc/kubernetes/kubelet.conf
$ cat /etc/kubernetes/kubelet.conf
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: REDACTED
server: https://1.1.1.1:6443 <== here
name: default-cluster
contexts:
- context:
cluster: default-cluster
namespace: default
user: default-auth
name: default-context
current-context: default-context
kind: Config
preferences: {}
users:
- name: default-auth
user:
client-certificate: /var/lib/kubelet/pki/kubelet-client-current.pem
client-key: /var/lib/kubelet/pki/kubelet-client-current.pem
If you have something like yq you can get it like this:
yq .clusters[0].cluster.server /etc/kubernetes/kubelet.conf | tr -d "\n\""
回答2:
When creating a cluster in GCP and then connect to that cluster with
gcloud container clusters get-credentials kafka-and-zookeepr --zone us-central1-a --project {YOUR_PROJECT_NAME}
you can issue
kubectl cluster-info
This will return
Kubernetes master is running at https://xxx.xxx.xxx.xxx
GLBCDefaultBackend is running at https://xxx.xxx.xxx.xxx/api/v1/namespaces/kube-system/services/default-http-backend:http/proxy
Heapster is running at https://xxx.xxx.xxx.xxx/api/v1/namespaces/kube-system/services/heapster/proxy
KubeDNS is running at https://xxx.xxx.xxx.xxx/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
Metrics-server is running at https://xxx.xxx.xxx.xxx/api/v1/namespaces/kube-system/services/https:metrics-server:/proxy
NOTE: I have docker installed on my local machine
回答3:
you may netstat -natp |grep kubelet to find the port also.
来源:https://stackoverflow.com/questions/52941015/how-to-find-master-node-from-worker-node-in-kubernetes