Kubernetes云提供商

时间:2019-11-29 10:20:02

标签: kubernetes

我是Kubernetes的新手,但我不确定它们是一个概念,即云提供商。

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

我设法使用L7入口和ClusterIP服务运行正在运行的应用程序,但是每次尝试使用L4 LoadBalancer时,LoadBalancer都处于挂起状态。根据{{​​3}},这是因为我没有任何CloudProvider。

但是CloudProvider的确切目的是什么?难道不是要在云上运行Kubernetes节点,pod等吗?如果是的话,由于我的配置,如果我的应用程序是Pod,而我的应用程序已经在云中并且可以从外部访问,那为什么还要麻烦我获得CloudProvider?

所以我的以下问题是:

  • CloudProvider的确切角色是什么?
  • 在我的环境中有用吗?
  • 必须具有CloudProvider才能运行L4负载平衡器吗?
  • L4 LoadBalancer的替代品是什么?
  • 我是否可以让自定义CloudProvider不依赖此处列出的其中一个:https://github.com/rancher/rancher/issues/14424?就像运行NGINX的自托管CloudProvider一样?

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

1 个答案:

答案 0 :(得分:0)

对于Rancher

  

外部云提供商是运行的kubernetes控制器   云提供商功能所需的特定于云提供商的循环   kubernetes。这些循环原本是   kube-controller-manager,但是他们紧密地耦合了   kube-controller-manager到云提供商特定的代码。为了   释放kubernetes项目的这种依赖关系,   引入了云控制器管理器。

这使我们进入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。入口可以提供负载平衡,SSL   终止和基于名称的虚拟主机。

如果您想比使用this SO thread更好地了解这一概念,那么

最后是关于自定义Cloud Provider的信息。可以为RKE启用其他云提供商:

  

如果要启用其他云提供商,RKE允许   自定义云提供商选项。必须提供名称和自定义   Cloud Provider选项可以作为多行字符串传入   customCloudProvider

希望对您有帮助。