我正在使用kops来维护kubernetes集群,但对它如何将新节点加入集群感到有点困惑。
首先,我认为应该使用ELB dns名称将每个节点中的kubelet配置为api服务器。但我找不到任何支持。
然后,我发现在新创建的实例的userdata中,有一些用于kubelet的配置项:
`kubeconfigPath: /var/lib/kubelet/kubeconfig`
当我登录实例并发现在kubeconfig文件中配置的服务器是另一个dns名称而不是我的ELB时,尝试解决它但失败了。尝试将此kubeconfig应用于另一个kubelet后,它显示错误:无法连接到服务器。
那么当我们添加新节点时它如何在kops中工作?我找不到任何文件..
答案 0 :(得分:0)
实际上,您是对的。主节点的ELB被添加到每个节点的/var/lib/kubelet/kubeconfig
中,它的确解析为它(我已经检查过了)。
# cat /var/lib/kubelet/kubeconfig
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: ...
server: https://api.internal.prod.mycluster.com
name: local
contexts:
- context:
cluster: local
user: kubelet
name: service-account-context
current-context: service-account-context
kind: Config
users:
- name: kubelet
user:
client-certificate-data: ...
# ping api.internal.prod.mycluster.com
PING api.internal.prod.mycluster.com (172.28.11.5) 56(84) bytes of data.
这是关于主服务器的:您不需要重新配置节点,因为ELB地址是相同的。使用节点甚至更容易:您只需要注册它们。
无论如何,如果您仍然对此感到好奇,请尝试查找Auto Scaling组/启动配置(用户数据):
PS。不要只是相信我-检查一下。