首页 文章

当我们使用kops为现有的Kubernetes集群设置新的SSH密钥时,它会破坏什么吗?

提问于
浏览
0

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

  • 1

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

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

    为了纠正这个问题,您需要循环使用基础架构 . 执行此操作的唯一方法是从ASG中逐个删除节点和控制平面节点 .

    从ASG删除节点后,它将被新的启动配置替换为新的SSH密钥 .

    在从AWS删除节点之前,您应首先使用 kubectl drain

    kubectl drain <nodename> --ignore-daemonsets --force
    

相关问题