我们需要访问Kubernetes节点(位于AWS中)的kubelet日志,以调查我们在Kubernetes错误方面遇到的问题(请参阅Even after adding additional Kubernetes node, I see new node unused while getting error "No nodes are available that match all of the predicates:) .
Kubectl日志仅从pod获取日志 . 要获取kubelet日志,我们需要ssh到k8s节点框 - (AWS EC2框) . 在这样做时,我们收到错误“Permission denied(publickey)”,这意味着我们需要设置ssh公钥,因为我们可能无法访问之前设置的内容 .
问题是如果我们按照https://github.com/kubernetes/kops/blob/master/docs/security.md中的描述使用kops设置新密钥,我们最终是否会对现有集群造成任何损害?任何现有的服务/访问是否会停止工作?或者这只会影响手动ssh到AWS EC2机器?
1 回答
您需要首先使用
kops cluster update
更新kops集群 . 但是,这不会更改任何正在运行的节点上的SSH密钥 .通过使用
kops cluster update
修改集群,您只需修改集群的Launch Configurations . 这仅在配置新节点时生效 .为了纠正这个问题,您需要循环使用基础架构 . 执行此操作的唯一方法是从ASG中逐个删除节点和控制平面节点 .
从ASG删除节点后,它将被新的启动配置替换为新的SSH密钥 .
在从AWS删除节点之前,您应首先使用
kubectl drain
: