停止和启动实例后如何重新连接到 Amazon kubernetes 集群?

How to re-connect to Amazon kubernetes cluster after stopping & starting instances?

我在 Amazon EC2 中使用 cluster/kube-up.sh 创建了一个集群来试用 kubernetes。然后我停止它以在不使用它时省钱。下次我在亚马逊启动 master 和 minion 实例时,*~/.kube/config 有集群主机的旧 IP-s,因为 EC2 为实例分配新的 public IP。

目前我还没有找到向 cluster/kube-up.sh 提供弹性 IP-s 的方法,以便在停止和启动实例之间设置一致的 IP-s . ~/.kube/config 中的证书也适用于旧 IP,因此手动更改 IP 也不起作用:

Running: ./cluster/../cluster/aws/../../cluster/../_output/dockerized/bin/darwin/amd64/kubectl get pods --context=aws_kubernetes Error: Get https://52.24.72.124/api/v1beta1/pods?namespace=default: x509: certificate is valid for 54.149.120.248, not 52.24.72.124

如何让 kubectl 在重启后在不同 IP 上的 运行 上对同一个 kubernetes master 进行查询?

如果您的集群唯一发生变化的是主节点的 IP 地址,您可以通过编辑文件 ~/.kube/config 手动修改主节点位置(查找 "server" 与 IP 地址)。

此用例(pausing/resuming 集群)不是我们通常测试的对象,因此一旦您的集群备份并且 运行,您可能会遇到其他问题。如果您这样做,请在 GitHub 存储库中 file an issue

我不确定您使用的是哪个版本的 Kubernetes,但在 v1.0.6 中,您可以将 MASTER_RESERVED_IP 环境变量传递给 kube-up.sh 以将给定的弹性 IP 分配给 Kubernetes 主节点。

您可以在 Kubernetes 存储库中检查 config-default.sh filekube-up.sh 的所有可用选项。