【问题标题】:LoadBalancer in KubernetesKubernetes 中的负载均衡器
【发布时间】:2024-01-17 15:26:01
【问题描述】:

我在单个节点上使用 minikube 安装了 kubernetes。我已经实现了管理 3 个 Pod 的“LoadBalancer”类型的服务。默认情况下,它使用“网络负载均衡器”。我们可以更改服务 .yaml 文件中的负载均衡器类型,还是可以更改使用的负载均衡器算法?请在下面找到服务文件:

—myservice.yaml

apiVersion: v1
kind: Service
metadata:
  name: demo-apps-lb
spec:
  type: LoadBalancer
  ports:
    port: 80
  selector:
      app: app1

注意:这里我没有使用任何云平台,所有的东西都在一个主机上。

【问题讨论】:

  • 您可以使用Nodeport 类型在特定端口上公开您的服务。该端口应在 30000-32676 个端口之间。使用 nodeport 服务类型后,您将能够在 http://: 访问您的服务

标签: kubernetes load-balancing minikube


【解决方案1】:

如果您以后计划附加域,请间接检查 DNS 映射,这也将创建负载平衡器,但处理请求和其他内容很容易。

https://kubernetes.io/docs/concepts/services-networking/ingress/

您可以使用注释来更改负载均衡器类型。

service.beta.kubernetes.io/aws-load-balancer-type

【讨论】:

    【解决方案2】:

    如果您在云上使用负载均衡器类型的服务,云提供商将为您创建负载均衡器并更新该服务中的信息。

    您可以使用下面的注释来更改负载均衡器类型,它仅在 aws 上受支持。

    service.beta.kubernetes.io/aws-load-balancer-type 
    

    【讨论】:

      【解决方案3】:

      因为使用的是 minikube,我认为可以安全地假设这是用于开发环境。您始终可以选择更改服务的公开方式。见kubernetes docs in service types section

      现在,当您想在您的开发环境中模拟服务类型的生产时,您有多种解决方法。现在因为 Minikube 没有与 LoadBalancer 捆绑在一起,所以您必须在此处安装一个(如 MetalLB)或尝试blog post 中详述的解决方法/黑客。

      希望有帮助!

      【讨论】: