我有一个节点池(在terraform中创建),并且我在我的项目中保留了一个外部IP。
我希望节点池中的一个节点始终被分配特定的IP地址。
有办法在GCP上做到这一点吗?
您可以为实例分配静态外部IP地址,但这对于GKE节点是不可能的,因为节点本质上是致命的,可以重新分配。这里需要为每个节点保留一个静态IP地址,这是不可能的。如果不使用预留的静态IP地址,可能会造成静态IP资源的浪费。你还是得付钱的。
您还可以选择使用入口配置HTTP负载均衡器并为您的负载均衡器保留静态IP地址。您可以使用ClusterIP类型的服务,并创建一个将流量转发到这些服务的入口规则,而不是使用NodePort。通过使用云Nat,可以将出接口流量路由到静态IP地址。
Kubernetes基于这样的理念:你的节点(基础设施)是一次性的,应该没有任何意义。
任何节点都可能在任何时候发生故障或被cloudder关闭(想想那些短暂的实例)。
大多数人只需要公开一些部署或pod。
为了使生活更简单(不仅对于SRE,对于调度器软件也是如此),我们通常每个节点有一个pod。
我猜你认为你需要给一个节点一个特定的地址,因为它里面有一个pod,必须有这个地址。
如果您需要为开发提供特定的IP地址,则需要公开它(kubectl expose
使用--external-ip
选项)。
我相信你可能需要一个固定的IP绑定到一个节点的唯一情况是,如果你需要在那个节点上运行一些软件,这些软件是为那个IP地址许可的,但我不确定用例。