【问题标题】:How does "type: LoadBalancer" creates external Load Balancer in Kubernetes?“type:LoadBalancer”如何在 Kubernetes 中创建外部负载均衡器?
【发布时间】:2019-01-06 03:06:31
【问题描述】:

Kubernetes 如何知道它上面运行的是哪个外部云提供商?

是否有任何特定的服务在 Master 中运行,可以确定 Kubernetes 集群是在 AWS 中运行还是在 Google Cloud 中运行?

即使它能够发现它是 AWS 或 Google,它从哪里获取凭证来创建外部 AWS/Google 负载均衡器?我们是否必须在某处配置凭据,以便它从那里挑选并创建外部负载均衡器?

【问题讨论】:

    标签: amazon-web-services kubernetes google-kubernetes-engine elastic-load-balancer aws-load-balancer


    【解决方案1】:

    在安装 Kubernetes 云提供商标志时,您必须在各种组件上指定 --cloud-provider=aws 标志。

    kube-controller-manager - 这是在发出特定于云的请求时与云 API 交互的组件。它运行“循环”,确保完成任何云提供商请求。因此,当您请求 Type=LoadBalancer 的服务时,控制器管理器会检查并确保已提供此服务

    kube-apiserver - 这只是确保公开云 API,例如持久卷

    kubelet - 确保在节点上配置工作负载时。对于持久存储 EBS 卷之类的情况尤其如此。

    我们是否必须在某处配置凭据,以便它从那里提取并创建外部负载均衡器?

    以上所有组件都应该能够查询所需的云提供商 API。通常这是使用IAM roles 完成的,它确保实际节点本身具有权限。如果您查看kops 文档,您将看到分配给主节点和工作节点以授予这些节点查询和进行 API 调用权限的 IAM 角色示例。

    应该注意的是,这种模式很快就会改变,将所有云提供商逻辑移动到专用的cloud-controller-manager,安装集群时必须预先配置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-02
      • 2016-12-30
      • 2020-01-30
      • 2016-06-23
      • 1970-01-01
      • 1970-01-01
      • 2019-05-27
      • 1970-01-01
      相关资源
      最近更新 更多