0

我们需要访问 Kubernetes 节点(在 AWS 中)上的 kubelet 日志,以调查我们面临的有关 Kubernetes 错误的问题(请参阅即使在添加额外的 Kubernetes 节点后,我看到新节点未使用,同时出现错误“没有可用的节点匹配所有谓词:)

Kubectl logs 仅从 pod 获取日志。要获取 kubelet 日志,我们需要 ssh 进入 k8s 节点盒 -(AWS EC2 盒)。这样做时,我们收到错误“权限被拒绝(公钥)”,这意味着我们需要设置 ssh 公钥,因为我们可能无法访问之前设置的内容。

问题是如果我们按照https://github.com/kubernetes/kops/blob/master/docs/security.md中的描述使用 kops 设置新密钥,我们最终会对现有集群造成任何损害吗?任何现有的服务/访问会停止工作吗?或者这只会影响到 AWS EC2 机器的手动 ssh?

4

1 回答 1

2

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

通过使用修改集群,kops cluster update您只需修改集群的启动配置。这只会在供应新节点时生效。

为了纠正这个问题,你需要循环你的基础设施。唯一的办法就是将节点和控制平面节点从 ASG 中一一删除。

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

在从 AWS 中删除节点之前,您应该先使用以下命令将其耗尽kubectl drain

kubectl drain <nodename> --ignore-daemonsets --force
于 2018-07-23T15:22:10.523 回答