Kubernetes 更新更改了 Google Cloud 中节点的静态+保留外部 IP

Posted

技术标签:

【中文标题】Kubernetes 更新更改了 Google Cloud 中节点的静态+保留外部 IP【英文标题】:Kubernetes update changes static+reserved external IPs for nodes in Google Cloud 【发布时间】:2017-11-04 07:14:56 【问题描述】:

我的 google 容器集群中有三个节点。

每次我通过 Google Container Engine 集群上的 web-ui 执行 kubernetes 更新时。

我的外部 IP 发生了变化,我必须在 Google Cloud Console 中的所有三个实例上手动分配以前的 IP。

这些是使用以下指南设置的保留静态外部 IP。

Reserving a static external IP

有人遇到过同样的问题吗?开始认为这是一个错误。

也许您可以为所有要使用的实例设置相同的静态出站外部 IP,但我找不到有关如何执行此操作的任何信息,只要它通过更新持续存在,这将是一个解决方案,否则我们已经遇到同样的问题。

只有更新会导致这种情况,而不是重新启动。

【问题讨论】:

你能澄清一下google compute cloud cluster是什么意思吗?你是说容器引擎集群吗?您还可以定义perform a kubernetes update 的含义吗?你在更新什么?您是否使用与您的外部 IP 关联的 Ingress 或 Service 资源?您如何在应用程序中使用外部 IP?需要更多细节... 抱歉有轻微的错误信息,更新了我的问题。 【参考方案1】:

我遇到了和你一样的问题。我们找到了一些解决方案。

KubeIP - 但这需要集群 1.10 或更高版本。我们的是 1.8 NAT - 在 GCP 文档中,他们谈到了这种方法。这对我来说太复杂了。

我们的解决方案 我们关注了documentation for assign IP addresses on GCE。使用了命令行。 使用这种方法,到目前为止我们没有任何问题。我还不知道这样做的风险。如果有人有想法,那就太好了。

我们基本上只是跑了:

gcloud compute instances delete-access-config [INSTANCE_NAME]  --access-config-name [CONFIG_NAME]
gcloud compute instances add-access-config [INSTANCE_NAME] --access-config-name "external-nat-static" --address [IP_ADDRESS]

如果有人对此解决方案有任何反馈。请交给我们。 @Ahmet Alp Balkan - 谷歌

【讨论】:

只是添加一个注释...我们已经使用这个方法 3 个月了,到目前为止没有任何问题。【参考方案2】:

您不应依赖每个单独节点的 IP 地址。实例可以来来去去(尤其是当您使用Cluster Autoscaler 时),并且它们的 IP 地址可以更改。

您应该始终使用 Service 或 Ingress 公开您的应用程序,并且使用这些资源创建的负载平衡器的 IP 地址在升级之间不会发生变化。此外,您可以将负载均衡器上的 IP 地址转换为静态(保留)IP 地址。

我看到您正在为您的节点分配静态 IP 地址。我看不出有任何理由这样做。当您使用 Service/Ingress 资源公开您的服务时,您可以将静态外部 IP 关联到它们。

查看本教程:https://cloud.google.com/container-engine/docs/tutorials/http-balancer#step_5_optional_configuring_a_static_ip_address

【讨论】:

我们正在使用多个需要白名单 ip 的外部服务,这就是我们需要静态 ip 的原因。 许多在他们的几个节点上使用静态 IP 进行入口。 LoadBalancer 每月最低 18 美元左右,而静态 IP 在分配给实例时是免费的。使用适当的工具,它非常适合许多用例。 (显然有缺点。) 我们需要从我们的实例通过防火墙,并且遇到同样的问题。扩展不是一个问题,但升级和弹性将此方法放在我需要改进的事项列表中。

以上是关于Kubernetes 更新更改了 Google Cloud 中节点的静态+保留外部 IP的主要内容,如果未能解决你的问题,请参考以下文章

更改了我的包名,更新了 google services.json 文件,计费和付款停止工作

Skaffold Kubernetes 不显示 React 更改

Google Cloud、Kubernetes 和 Cloud SQL 代理:默认 Compute Engine 服务帐户问题

我们可以在不更改 APP 版本的情况下更新 Google Play Store 上的 APK

Google (Play) 睡眠模式下的位置服务更新间隔更改 (Android)

Nvidia宣布支持Kubernetes容器的GPU加速