gpt4 book ai didi

load-balancing - 如何为 Kubernetes 负载均衡器指定静态 IP 地址?

转载 作者:行者123 更新时间:2023-12-01 21:22:47 24 4
gpt4 key购买 nike

我有一个在 Google Compute Engine 上运行的 Kubernetes 集群,我想为我的外部服务分配静态 IP 地址(类型:LoadBalancer)。我不确定目前这是否可能。我找到了有关该主题的以下来源:

  • Kubernetes Service Documentation允许您定义外部 IP 地址,但失败并显示 cannot unmarshal object into Go value of type []v1.LoadBalancerIngress
  • publicIPs field似乎让我指定外部 IP,但它似乎也不起作用
  • This Github issue指出我正在尝试做的事情尚不支持,但将在 Kubernetes v1.1 中实现
  • clusterIP field还允许我指定 IP 地址,但失败并显示“提供的 IP 不在有效范围内

我觉得在设置 Web 服务时使用静态 IP 非常重要。我在这里错过了什么吗?如果有人能在这里启发我,我将非常感激!

编辑:澄清一下:我没有使用容器引擎,我使用计算引擎的官方安装说明自己设置了一个集群。与我的 k8s 服务关联的所有 IP 地址都被标记为“临时”,这意味着重新创建 kubernetes 服务可能会导致不同的外部 IP 地址(这就是为什么我需要它们是静态的)。

最佳答案

TL;DR 运行 Kubernetes v1.1 的 Google 容器引擎支持 loadBalancerIP,只需将自动分配的 IP 标记为静态 首先。

Kubernetes v1.1 支持externalIPs :

apiVersion: v1
kind: Service
spec:
type: LoadBalancer
loadBalancerIP: 10.10.10.10
...

到目前为止,还没有关于如何在 GCE 上使用它的真正良好一致的文档。可以肯定的是,该 IP 首先必须是您预先分配的静态 IP 之一。

cross-region load balancing文档主要针对计算引擎,而不是 Kubernetes/容器引擎,但它仍然很有用,尤其是“配置负载均衡服务”部分。

如果您只是在 GCE 上创建一个 Kubernetes LoadBalancer,它将创建一个网络计算引擎 > 网络 > 网络负载平衡 > 转发规则,指向由集群上的计算机组成的目标池(通常只有那些运行与服务选择器)。看起来删除命名空间并不能很好地清理这些创建的规则。

<小时/>

更新

现在实际上支持它(尽管有记录):

  1. 检查您是否正在运行 Kubernetes 1.1 或更高版本(在 GKE 下编辑您的集群并检查“节点版本”)
  2. Networking > External IP addresses下分配静态IP , 任何一个:
    • 在没有 loadBalancerIP 的情况下部署一次,等到运行 kubectl get svc 时分配了外部 IP,然后在该页面的列表中查找该 IP,然后将它们从短暂更改为静态
    • 点击集群区域中的“保留静态地址”区域,附加到“无”。
  3. 编辑您的 LoadBalancer,使其具有如上所述的 loadBalancerIP=10.10.10.10(适应 Google 提供给您的 IP)。

现在,如果您删除 LoadBalancer 甚至命名空间,它会在该集群上重新部署时保留该 IP 地址。

<小时/>

更新2016-11-14

另请参阅Kubernetes article描述如何在 Kubernetes 上为单个或多个域设置静态 IP。

关于load-balancing - 如何为 Kubernetes 负载均衡器指定静态 IP 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32266053/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com