【问题标题】:Kubernetes cloud providerKubernetes 云提供商
【发布时间】:2020-03-24 22:34:19
【问题描述】:

我是 Kubernetes 新手,但我不确定是否完全理解它们的概念:云提供商。

  • 我已经使用 RKE(Rancher 引擎)安装了我的 Kubernetes 集群。
  • 我的集群设置在 rancher2 之上。
  • 我的节点是托管 OVH 服务器的虚拟机。

我设法运行具有 L7 入口和 ClusterIP 服务的应用程序,但每次我尝试使用 L4 LoadBalancer 时,LoadBalancer 都会卡在挂起状态。根据https://github.com/rancher/rancher/issues/14424,这是因为我没有任何 CloudProvider。

但是 CloudProvider 的确切目的是什么?不就是在云端运行 Kubernetes 节点、Pod 等等吗?如果是的话,如果我的应用程序是 pod 已经在云上并且由于我的配置可以从外部访问,我为什么还要费心去获取 CloudProvider。

所以我的以下问题是:

  • CloudProvider 的具体角色是什么?
  • 它在我的环境中有用吗?
  • 是否必须拥有 CloudProvider 才能运行 L4 负载均衡器?
  • L4 LoadBalancer 的替代品是什么?
  • 难道我不能让自定义 CloudProvider 不依赖此处列出的其中之一:https://kubernetes.io/docs/concepts/cluster-administration/cloud-providers/ 吗?比如运行 NGINX 的自托管 CloudProvider 之类的?

感谢您对此主题的任何澄清/建议。 -

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    如果是Rancher

    外部云提供者是运行的 kubernetes 控制器 运行所需的云提供商特定的循环 Kubernetes。这些循环最初是 kube-controller-manager,但它们紧密耦合 kube-controller-manager 到云提供商特定的代码。为了 释放这个依赖的kubernetes项目, 引入了 cloud-controller-manager。

    这就引出了Kubernetes Cloud Controller Manager的话题

    Kubernetes v1.6 引入了一个新的二进制文件,称为 云控制器管理器。 cloud-controller-manager 是一个守护进程 嵌入特定于云的控制回路。这些特定于云的控制 循环最初位于 kube-controller-manager 中。自云 提供商以不同的速度开发和发布 Kubernetes 项目,将提供者特定的代码抽象到 cloud-controller-manager 二进制文件允许云供应商发展 独立于核心 Kubernetes 代码。

    关于LoadBalancer部分:

    • 有一个guide 显示如何创建外部负载平衡器。它说:

    您需要有一个 Kubernetes 集群,以及 kubectl 命令行 工具必须配置为与您的集群通信。

    • 但是,如果您需要替代方法,您可能需要使用Ingress

    管理对服务的外部访问的 API 对象 集群,通常是 HTTP。 Ingress可以提供负载均衡、SSL 终止和基于名称的虚拟主机。

    如果您想更好地了解这个概念,请查看this SO thread

    最后关于自定义Cloud Provider。可以为 RKE 启用不同的云提供商:

    如果您想启用不同的云提供商,RKE 允许 自定义云提供商选项。必须提供名称和自定义 云提供商选项可以作为多行字符串传入 customCloudProvider.

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2021-11-04
      • 2016-03-31
      • 2019-10-17
      • 1970-01-01
      • 1970-01-01
      • 2020-01-17
      • 2019-01-17
      • 1970-01-01
      • 2022-07-15
      相关资源
      最近更新 更多