如果我能够SSH到主服务器或集群中的任何节点,我是否可以获得1)kubeconfig文件或2)组成我自己的kubeconfig文件所需的所有信息?
答案 0 :(得分:2)
您可以在/etc/kubernetes/admin.conf下的主节点上找到配置(在v1.8 +上)。
在某些版本的kubernetes上,可以在〜/ .kube
下找到答案 1 :(得分:1)
我也有兴趣听到这个问题的答案。但我认为这取决于身份验证的设置方式。例如,
kubeconfig
文件。 但是,默认情况下,Pods具有可用于向Kubernetes API进行身份验证的服务帐户令牌。因此,如果您通过SSH连接到节点并将docker exec
运行到由Kubernetes管理的容器中,您将看到:
/ # ls run/secrets/kubernetes.io/serviceaccount
ca.crt namespace token
您可以合并ca.crt
和token
来构建一个将向Kubernetes主程序进行身份验证的kubeconfig
文件。
因此,您的问题的答案是是,如果您通过SSH连接到节点,则可以跳转到Pod并收集信息以撰写您自己的kubeconfig
文件。 (有关如何禁用此功能,请参阅this question。我认为有一些解决方案可以默认禁用它以及强制RBAC和禁用ABAC,但我可能错了。)