当我们为现有的Kubernetes集群使用kops设置新的SSH密钥时,它将破坏任何东西吗?

时间:2018-07-23 14:23:57

标签: amazon-web-services ssh kubernetes kops kubelet

我们需要访问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?

1 个答案:

答案 0 :(得分:2)

您首先需要使用kops cluster update更新kops集群。但是,这不会更改任何正在运行的节点上的SSH密钥。

通过使用kops cluster update修改集群,您只需修改集群的Launch Configurations。这仅在供应新节点时生效。

为了解决这个问题,您需要循环使用基础架构。唯一的方法是从ASG中一一删除节点和控制平面节点。

从ASG中删除节点后,该节点将被具有新SSH密钥的新启动配置替换。

在从AWS删除节点之前,应先使用kubectl drain drain it对其进行{}:

kubectl drain <nodename> --ignore-daemonsets --force
相关问题