繁体   English   中英

如何为 OCI kubernetes 集群中的服务设置 static LoadBalancer IP?

[英]How to setup static LoadBalancer IP for a service in OCI kubernetes cluster?

我在 Oracle 云中有一个 3 节点 OKE 集群设置。

我在集群中部署了一个 nginx 入口 controller。 我将 FQDN test.myapp.com 映射到 nginx 入口 controller 服务的 EXTERNAL_IP。

每当我在测试期间重新安装入口 controller 时,它会得到不同的 EXTERNAL_IP,我必须再次将 FQDN map 重新安装到新的 ZA12A3079E14CED46E69BA52B8A90B21。

因此,如果我可以在 nginx 入口 Z1040C1AZABA 安装期间指定 static loadBalancer IP 会更好。 像这样:

nginx-ingress:
  controller:
    service:
      loadBalancerIP: "125.23.119.23"

如何在 Oracle 云(使用 OKE)中实现这一点?

Please ensure you install nginx ingress controller using helm chart https://kubernetes.github.io/ingress-nginx/deploy/#using-helm

请确保您的 Ingress Controller 使用 helm 图表值仅在 Openshift 集群的 Infra 节点上作为 DaemonSet 运行。

然后创建一个 Oracle 云负载均衡器以指向 Ingress Controller 服务正在侦听的 Infra 节点的 NodePort。

这就是 OpenShift 路由器的工作方式。

Oracle 云基础设施(OCI)支持在 kubernetes 集群中创建LoadBalancer服务,并允许设置LoadBalancerIP参数。

但首先,您必须在 OCI 中创建一个Reserved Public IP 地址,然后将该 IP 地址指定为您服务的LoadBalancerIP

你可以这样做:

  • Go 到 OCI 控制台:
    Networking -> IP management -> Reserved Public IPs
    点击Reserve Public IP Address
    提供一个名称和 select 来源Oracle如果这是您拥有的唯一公共 IP 池(默认)。
    单击“保留”按钮以获取保留的公共 IP 地址。

  • 在 OCI 控制台中,查看:
    Networking -> IP management -> Reserved Public IPs
    (您可以在那里看到一个预留的公共 IP ,但未连接到任何 VNIC)
    Networking -> Load Balancers
    (我们保留的 IP 地址没有列出负载均衡器)

  • 使用kubectl在 kubernetes 集群中创建一个LoadBalancer类型的服务, LoadbalancerIP提供我们保留的 IP 地址的值。

  • 查看kubectl get svc ,可以看到为服务分配了 Reserved Public IP 地址。

  • 在 OCI 控制台中,查看:
    Networking -> IP management -> Reserved Public IPs
    (您可以看到一个公共的 IP 地址保留,附加到一个 LB 的 VNIC)
    Networking -> Load Balancers
    (使用我们保留的 IP 地址自动添加第 4 层负载均衡器)

这意味着,当您创建Reserved Public IP时,您只是将其保留以供将来使用。 仅当使用此保留的 IP 地址创建LoadBalancer类型服务时,才会创建第 4 层负载均衡器并与该 IP 地址关联。

如果您删除该 LoadBalancer 类型的服务,则第 4 层负载均衡器也会被删除。 但是保留的公共 IP 仍然存在。 下次您可以将该 IP 地址分配给另一个服务。

这些文档对此主题进行了解释:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM