首页 > 解决方案 > Kubernetes 云提供商

问题描述

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

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

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

所以我的以下问题是:

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

标签: kubernetes

解决方案


牧场主的情况下

外部云提供商是一个 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 项目相比,云提供商以不同的速度开发和发布,将提供商特定的代码抽象为 cloud-controller-manager 二进制文件允许云供应商独立于核心 Kubernetes 代码发展。

关于 LoadBalancer 部分:

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

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

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

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

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

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

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

我希望它有所帮助。


推荐阅读