我们需要访问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框)。这样做时,我们会收到错误消息“权限被拒绝(publickey)”,这意味着我们需要设置ssh公共密钥,因为我们可能无法访问先前设置的内容。
问题是,如果我们按照https://github.com/kubernetes/kops/blob/master/docs/security.md中所述使用kops设置新密钥,是否会对现有集群造成损害?现有的任何服务/访问是否会停止工作?还是这只会影响对AWS EC2计算机的手动ssh?
答案 0 :(得分:2)
您首先需要使用kops cluster update
更新kops集群。但是,这不会更改任何正在运行的节点上的SSH密钥。
通过使用kops cluster update
修改集群,您只需修改集群的Launch Configurations。这仅在供应新节点时生效。
为了解决这个问题,您需要循环使用基础架构。唯一的方法是从ASG中一一删除节点和控制平面节点。
从ASG中删除节点后,该节点将被具有新SSH密钥的新启动配置替换。
在从AWS删除节点之前,应先使用kubectl drain
drain it对其进行{3>}:
kubectl drain <nodename> --ignore-daemonsets --force