AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1060601
Accepted
Paco V.
Paco V.
Asked: 2021-04-17 03:19:45 +0800 CST2021-04-17 03:19:45 +0800 CST 2021-04-17 03:19:45 +0800 CST

为 Kubernetes 构建多租户托管控制平面

  • 772

我注意到有一些云提供商为 kubernetes 提供托管解决方案,我想知道此产品中涉及的各种组件是什么。

我的直觉告诉我会涉及到一些组件,例如 , NetworkPolicy,OPA但我无法确定整体项目概述应该如何,因为集群的每个用户的 API 都是相同的。

他们是在部署各种控制平面,还是为每个用户部署单独的控制平面?

cloud kubernetes namespaces
  • 1 1 个回答
  • 45 Views

1 个回答

  • Voted
  1. Best Answer
    Paul Krizak
    2021-04-17T08:01:49+08:002021-04-17T08:01:49+08:00

    我认为您指的是主要云提供商中的 GKE、EKS 和 AKS 等托管解决方案。每个云提供商对于如何管理集群控制平面都有不同的“秘诀”,但共同的主题是控制平面(kube-apiserver、etcd、kube-controller-manager、kubelet 等)被隐藏起来您作为集群所有者。

    从您作为这些集群之一的创建者/所有者的角度来看,它是一个完全独立的集群。您可以为自己的集群获取自己的 Kubernetes API 端点的 IP 地址。只有集群的数据会显示在您的 API 中。

    现在,至于他们在幕后做了什么让事情看起来像这样——这不是公开的知识,但我们可以对他们可能是如何做的做出一些合理的猜测。

    一种方法是,他们实际上是在为每个集群构建独立的控制平面,并配有自己的虚拟机。有像 ClusterAPI 这样的框架可以自动执行此操作。但这并不是在主要云平台上运行数千或数百万个 Kubernetes 集群的一种非常节省资源的方式,因此大玩家可能不是这样做的。

    另一种方法是在虚拟机池上的独立容器中运行单独的控制平面组件。甚至可能是另一个 Kubernetes 集群。所以当一个新的 Kubernetes 集群的请求进来时,编排器只是产生一个新的 kube-apiserver 部署、一个新的 etcd StatefulSet 等,并将它们连接到指定的工作节点池。我想这或多或少是谷歌和亚马逊正在做的事情,但可能比我所描述的要复杂得多。

    最后,一种方法是一起消除“上游”Kubernetes API 和管理组件(除了 kubelet 和 kube-proxy),而是创建一些定制的、可扩展的、多租户 Kubernetes 控制平面服务。这似乎是谷歌可能会做的事情,因为这将是最容易扩展的,因此可以让他们以最低的成本提供最多的集群和最好的性能。但是,它偏离了上游 Kubernetes 代码,因此需要一个庞大、资金充足且敬业的开发团队来完成这项工作。

    如果您正在考虑构建自己的多租户 Kubernetes 基础架构,我建议您考虑使用 Rancher 之类的编排工具来执行此操作,而不是自己动手。使用 Rancher 之类的东西将允许您创建角色来控制租户的访问权限并创建预配置的集群“模板”。租户单击按钮以使用您拥有的任何 VM 编排工具(例如 VMware、Digital Ocean 或 AWS 或 GCP 等云提供商)部署新的 Kubernetes 集群。尤其是 Rancher 还具有运行多租户集群的能力,即构建许多应用程序开发人员同时使用的单个大型 Kubernetes 集群。在这种情况下,您将命名空间分配给每个应用程序团队(Rancher 有一个他们称之为“项目”的抽象),每个应用程序团队可以完全管理其命名空间中的所有资源,但不能在集群级别管理任何东西。然后由“平台运营”团队(我猜是你?)来管理集群本身。

    • 0

相关问题

  • 您如何进行云 ROI 分析?您是否正在迁移到云,如果是,首先要迁移到哪些系统?[关闭]

  • 如何预先签署 puppet 证书?

  • 使用云服务器时是否存在性能权衡?

  • 可扩展的云软件?

  • 哪些云服务将在 2015 年出现?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve