$ kubectl cluster-info
1. Kubernetes master is running at https://10.156.0.3:6443
2. KubeDNS is running at https://10.156.0.3:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
如果你跑
kubectl cluster-info -v8
您可以看到以下内容:
第一行是从你的
~/.kube/config
文件和
kubectl
只是检查一下是否有效
GET
请求,搜索集群中肯定存在的内容:
I0222 11:21:18.015482 18150 round_trippers.go:416] GET https://10.156.0.3:6443/api/v1/namespaces/kube-system/services?labelSelector=kubernetes.io%2Fcluster-service%3Dtrue
您可以通过启动
kubectl proxy
然后,在另一个控制台中:
curl http://127.0.0.1:8001/api/v1/namespaces/kube-system/services?labelSelector=kubernetes.io%2Fcluster-service%3Dtrue
正如您在响应中看到的,那里没有带有主url的行。
所以,要获取
kubectl cluster-info
您只需要读取kubernetes配置文件的正确部分,因为您可以
several cluster configuration
那里。
要读取和反序列化kubernetes配置文件,在
loader.go
:
// LoadFromFile takes a filename and deserializes the contents into Config object
func LoadFromFile(filename string) (*clientcmdapi.Config, error)
或其他功能
config.go
:
// getConfigFromFile tries to read a kubeconfig file and if it can't, returns an error. One exception, missing files result in empty configs, not an error.
func getConfigFromFile(filename string) (*clientcmdapi.Config, error)