繁体   English   中英

Kubernetes 云提供商

[英]Kubernetes cloud provider

我是 Kubernetes 的新手,他们是一个我不确定完全理解的概念:云提供商。

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

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

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

所以我的以下问题是:

  • CloudProvider 的角色究竟是什么?
  • 它在我的环境中有用吗?
  • 是否必须拥有 CloudProvider 才能运行 L4 Load Balancer?
  • L4 LoadBalancer 的替代品是什么?
  • 我不能让自定义 CloudProvider 不依赖此处列出的其中之一: https ://kubernetes.io/docs/concepts/cluster-administration/cloud-providers/ 吗? 像运行 NGINX 的自托管 CloudProvider 之类的?

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

牧场主的情况下

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

这将我们带到了Kubernetes Cloud Controller Manager的主题

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

关于 LoadBalancer 部分:

  • 有一个指南显示了如何创建外部负载均衡器。 它说:

您需要有一个 Kubernetes 集群,并且必须配置 kubectl 命令行工具才能与您的集群通信。

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

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

如果你想更好地了解这个概念,而不是查看这个 SO 线程

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

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

我希望它有帮助。

暂无
暂无

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

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