作者 | Catherine Paganini、Jason Morgan

来源 | K8sMeetup

头图 | 下载于视觉中国

在本系列之前的文章中,我们讨论了 CNCF 云原生全景图的各层:供应层、运行时层、编排管理层以及应用定义和开发层。本文我们将聚焦在平台层。

正如我们在本系列文章中看到的那样,每个类别都解决了特定的问题。仅仅存储并不能提供管理应用程序所需的全部功能,你还需要编排管理、容器运行时、服务发现、网络、API 网关等工具。平台将来自不同层的工具捆绑在一起,以解决更大的问题

平台里其实没有新的工具。你当然可以构建自己的平台,事实上,许多组织都这样做。但是,可靠、安全地配置和微调不同的模块,同时确保始终更新所有技术并修补漏洞,这不是一件容易的事。你需要一支专门的团队来构建和维护它。如果没有所需的专业知识,那么使用平台可能会更好。对于某些组织,尤其是工程团队规模较小的组织,平台是采用云原生技术的唯一方法

你可能已经注意到了,所有的平台都是围绕 Kubernetes 来演化的,因为 Kubernetes 是云原生技术栈的核心。

Kubernetes 发行版

是什么

发行版是指供应商以 Kubernetes 为核心(采用未经修改的开源代码,尽管有些人对其进行了修改),并将其打包以进行重新发行。通常这个过程需要查找和验证 Kubernetes 软件,并提供集群安装和升级的机制。许多 Kubernetes 发行版都包含其他闭源或开源的应用程序。

解决的问题

开源 Kubernetes 并未指定特定的安装工具,而是将许多设置配置选项提供给用户。此外,有限的社区资源(包括社区论坛、StackOverflow、Slack 或 Discord 等)已经不能解决所有的问题。

随着 Kubernetes 的普及,Kubernetes 的使用变得越来越容易,但是查找和使用开源安装程序可能会面临挑战。用户需要了解使用哪个版本,在何处获取,以及特定组件是否能兼容。此外,还需要决定集群上部署什么软件,要使用哪些设置来确保平台的安全性、稳定性和高性能。所有这些都需要丰富的 Kubernetes 专业知识,而这些知识可能并不容易获得。

如何解决

Kubernetes 发行版提供了一种安装 Kubernetes 的可靠方式,并提供了合理的默认值以创建更好、更安全的操作环境。Kubernetes 发行版为供应商和项目提供了所需的掌控度和可预测性,以帮助他们支持客户部署、维护和升级 Kubernetes 集群。

这种可预测性使发行版提供商在客户遇到生产问题时可为其提供支持。发行版常常提供经过测试和受支持的升级路径,使用户的 Kubernetes 集群保持最新的版本。此外,发行版通常提供可在 Kubernetes 上部署的软件,从而使其更易于使用。

对应的工具

如果你已经安装了 Kubernetes,那你可能已经使用了 kubeadm 之类的工具来启动和运行集群。即便如此,你可能还需要 CNI(容器网络接口)来安装和配置它。然后,你可能已经添加了一些存储类,一个处理日志消息的工具,可能还需要个 ingress controller,以及更多其他的工具。Kubernetes 发行版将自动执行部分或全部设置。它还将根据自己对最佳实践或智能默认值的理解提供配置设置。此外,大多数发行版都将捆绑一些经过测试的扩展或附件,以确保用户可以尽快使用新集群。

我们以 Kublr 为例。它以 Kubernetes 为核心,主要捆绑了来自供应层、运行时层、编排管理层的工具。所有模块都预先配置了一些选项并且开箱即用。不同的平台聚焦不同的功能。就 Kublr 而言,重点是在运维方面,而其他平台则可能聚焦在开发工具上。

此类别中有很多工具选项。如下图所示,企业可以选择和供应商达成技术合作,比如国外的 Canonical、VMware、Mirantis、SUSE,国内的网易、火山引擎和京东,它们都可以提供出色的开源和商业工具,建议在评估发行版时仔细考虑自己的需求。

托管 Kubernetes

是什么

托管 Kubernetes 是由 Amazon Web Services(AWS)、DigitalOcean、Azure 或 Google 等基础设施提供商(云厂商)提供的服务,允许客户按需启动 Kubernetes 集群。云厂商负责管理 Kubernetes 集群的一部分,通常称为控制平面。托管 Kubernetes 服务与发行版相似,但由云厂商在其基础架构上进行管理。

解决的问题

托管 Kubernetes 使团队只需在云厂商开设一个账户即可开始使用 Kubernetes。它解决了 Kubernetes 入门五个过程中的“五 W”问题:

  • Who:云厂商;

  • What:他们托管的 Kubernetes 产品;

  • When:现在;

  • Where:云厂商的基础架构上;

  • Why:由你决定。

如何解决

由于 Kuberentes 托管服务提供商负责管理所有细节,因此托管的 Kubernetes 服务是开始云原生之路的最简单方法。用户所需要做的就是开发自己的应用程序并将其部署在托管的 Kubernetes 服务上,这非常方便。托管产品允许用户启动 Kubernetes 集群并立即开始*,同时对集群可用性承担一些责任。值得注意的是,这些服务的额外便利性会造成灵活性的降低:托管的 Kubernetes 服务和云厂商绑定,且用户无法访问 Kubernetes 控制平面,因此某些配置选项会受到限制

*AWS 的 EKS 略有例外,因为它还要求用户采取一些其他步骤来准备集群。

对应的工具

托管 Kubernetes 是由供应商(通常是基础架构托管提供商)提供的按需使用的 Kubernetes 集群,供应商负责配置群集和管理 Kubernetes  控制平面。再次说明,值得注意的例外是 EKS,其上的单个节点配置由客户端决定。

托管 Kubernetes 服务使组织可以将基础架构组件管理外包出去,这样可以快速配置新集群并降低运营风险。主要的权衡取舍在于可能需要为控制平面管理付费,并且用户的管理权限有限。与自己搭建 Kubernetes 群集相比,托管服务在配置 Kubernetes 群集方面有更严格的限制

在这个领域中有许多供应商和项目,在撰写本文时,尚无 CNCF 项目。

Kubernetes 安装程序

是什么

Kubernetes 安装程序可帮助你在机器上安装 Kubernetes,它们可自动化 Kubernetes 的安装和配置过程,甚至可以帮助升级。Kubernetes 安装程序通常与 Kubernetes 发行版或托管 Kubernetes 产品结合使用或由它们使用。

解决的问题

与 Kubernetes 发行版相似,Kubernetes 安装程序可简化 Kubernetes 的上手过程。开源的 Kubernetes 依赖于 kubeadm 之类的安装程序。截至本文撰写之时,kubeadm 可用于启动和运行 Kubernetes 集群,是 CKA(Kubernetes 管理员认证) 测试的一部分。

如何解决

Kubernetes 安装程序简化了 Kubernetes 的安装过程。像发行版一样,它们为源代码和版本提供经过审核的源。它们还经常自带 Kubernetes 环境配置。像 kind (Docker 中的 Kubernetes)这样的 Kubernetes 安装程序允许通过单个命令获得 Kubernetes 集群。

对应的工具

无论是在 Docker 上本地安装 Kubernetes,启动和配置新的虚拟机,还是准备新的物理服务器,都需要一个工具来处理各种 Kubernetes 组件的准备工作。

Kubernetes 安装程序可简化该过程。有些处理节点启动,还有一些仅配置已供应的节点。它们都提供不同程度的自动化,并且适合不同的用例。开始使用 Kubernetes 安装程序时,应先了解自己的需求,然后选择可以满足这些需求的安装程序。在撰写本文时,kubeadm 是 Kubernetes 生态系统中至关重要的工具,已包含在 CKA 测试中。Minikubekindkopskubespray 都是 CNCF 中的 Kubernetes 安装程序项目。

PaaS/容器服务

是什么

PaaS(平台即服务)是一种环境,允许用户运行应用程序而不必了解底层计算资源。此类别中的 PaaS 和容器服务是一种机制,可为开发人员托管 PaaS 或托管他们可以使用的服务。

解决的问题

在本系列文章中,我们讨论了有关“云原生”的工具和技术。PaaS 连接了此领域中的许多技术,可为开发人员提供直接价值。它回答了以下问题:

  • 我如何在各种环境中运行应用程序?

  • 一旦应用程序运行起来,我的团队和用户将如何与它们交互?

如何解决

PaaS 为组合运行应用程序所需的开源和闭源工具提供了选择。许多 PaaS 产品包含处理 PaaS 安装和升级的工具,以及将应用程序代码转换为正在运行的应用程序的机制。此外,PaaS 可以处理应用程序实例的运行时需求,包括按需扩展单个组件以及可视化单个应用程序的性能和日志消息

对应的工具

组织正在采用云原生技术来实现特定的业务或目标。与构建自定义应用程序平台相比,PaaS 可快速让组织实现价值。HerokuCloud Foundry Application Runtime 之类的工具可帮助组织快速启动并运行新的应用程序,它们可提供运行云原生应用程序所需的工具。任何 PaaS 都有自身的限制。大多数只支持一种语言或一部分应用程序类型,其自带的一些工具选项可能并不适合你的需求。无状态应用程序通常在 PaaS 中表现出色,而数据库等有状态应用程序通常不太适合 PaaS。目前在这个领域没有 CNCF 项目,但是大多数产品都是开源的。

总结

如文中所介绍,有多种工具可帮助简化 Kubernetes 的采用。Kubernetes 发行版、托管 Kubernetes 服务、Kubernetes 安装程序以及 PaaS 都承担了一些安装和配置的工作,可进行预打包。每个解决方案都有其自己的特点。

在采用上述任何一种方法之前,需要进行一些研究,以确定适合自己需求的最佳解决方案。你可能需要考虑:

  • 我会遇到一些需要掌控控制平面的场景吗?如果有,托管解决方案可能不是一个很好的选择。

  • 我有没有一个小型团队来管理“标准”工作负载,并需要分流尽可能多的操作任务?如果有,托管解决方案可能非常合适你。

  • 便携性对我来说重要吗?

  • 生产就绪情况如何?

还有更多问题需要考虑。没有一个“最佳工具”,但是对于你的特定需求,肯定可以选择一个有效工具。希望本文能帮助你将搜索范围缩小到正确的区域。

关于云原生,我们还有:

云原生全景图之五:应用程序定义和开发层

云原生全景图之四:编排和管理层

三探云原生全景图,这次聊聊运行时层

俯瞰云原生,这便是供应层

都在说云原生,它的技术图谱你真的了解吗?

2020-2021中国开发者调查报告重磅来袭,直接扫码或微信搜索「CSDN」公众号,后台回复关键词「开发者」,快速获取完整的报告内容!


更多精彩推荐
☞实战 | Service Mesh 微服务架构实现服务间 gRPC 通信☞Kubernetes 稳定性保障手册 -- 可观测性专题☞走过 30 年:银行数据库的下一步是国产化
点分享点收藏点点赞点在看

云原生全景图之六 | 托管 Kubernetes 和 PaaS 解决什么问题相关推荐

  1. 一文带你理解云原生 | 云原生全景图详解

    关注「开源Linux」,选择"设为星标"回复「学习」,有我为您特别筛选的学习资料~ 1带你了解云原生技术图谱 如果你研究过云原生应用程序和相关技术,大概率你遇到过 CNCF 的云原 ...

  2. 史上最全云原生全景图解读攻略

    带你了解云原生技术图谱 ​如果你研究过云原生应用程序和相关技术,大概率你遇到过 CNCF 的云原生全景图.这张全景图技术之多.规模之大无疑会让人感到震惊,那么我们该如何去理解这张图呢? 如果把它拆开来 ...

  3. 必看!史上最全云原生全景图解读攻略来啦

    来源 | 尔达 Erda 公众号 ​ 带你了解云原生技术图谱 ​ 如果你研究过云原生应用程序和相关技术,大概率你遇到过 CNCF 的云原生全景图.这张全景图技术之多.规模之大无疑会让人感到震惊,那么我 ...

  4. 云原生全景图详解系列:带你了解云原生技术图谱

    来源 | K8s中文社区 作者:Catherine Paganini 翻译:Sarah(K8sMeetup) 如果你研究过云原生应用程序和相关技术,大概率你遇到过 CNCF 的云原生全景图.这张全景图 ...

  5. 云原生全景图之五:应用程序定义和开发层

    作者 | Catherine Paganini.Jason Morgan 来源 | K8sMeetup 头图 | 下载于视觉中国 前文介绍了如何将所有应用程序组件作为整体来编排和管理(编排和管理层). ...

  6. 2021 云原生开门红,金山云发布全新云原生全景图

    据云原生计算基金会(CNCF)数据显示,当前企业已经在广泛使用云原生技术,容器应用已成常态, 2019 年 84% 的公司在生产中使用容器,而 2016 年仅为 3%.据阿里达摩院最新2021年科技趋 ...

  7. 云原生全景图之四:编排和管理层

    前文已经介绍了应用程序设置了运行时(运行时层),本文将介绍如何将所有应用程序组件作为整体来编排和管理(编排和管理层). 来源 | K8sMeetup 作者 | Catherine Paganini.J ...

  8. 始于阿里,回归社区:阿里8个项目进入CNCF云原生全景图

    破土而出的生命力,源自理想主义者心底对技术的信念. 云原生技术正席卷全球,云原生基金会在去年KubeCon +CloudNativeCon NA的现场宣布: 其正在孵化的项目已达14个,入驻的厂家或产 ...

  9. 三探云原生全景图,这次聊聊运行时层

    在<俯瞰云原生,这便是供应层>我们介绍了云原生全景图的最底层:供应层,本文将带大家了解运行时层,这一层包含了容器在云原生环境中运行所需的一切. 作者 | Catherine Paganin ...

最新文章

  1. 虚幻引擎C++终极射手教程 Unreal Engine C++ The Ultimate Shooter Course
  2. table 隔列换色
  3. 全网首发!2020年AI、CV、NLP顶会最全时间表!
  4. PC817/TLP2309/TLP291/AQY280S主要参数对比
  5. CVPR2021 用更好的目标检测器提取视觉特征!微软提出VinVL,基于更好的视觉特征,达到更强的多模态性能...
  6. android spp传输速度,Android蓝牙SPP连接似乎在几秒后就已经死了
  7. 《Essential C++》笔记之传指针(pass by pointer)分析
  8. 将一个list转化成一颗树的输出方法
  9. 蓝桥杯 ADV-119 算法提高 6-9删除数组中的0元素
  10. php中文网是什么需要框架,框架是什么?
  11. Atitit 账号实名制验证等制度和手段 1. 实名制 - 身份证明的一种制度 免费编辑 修改义项名 1 1.1. 匿名制优缺点 2 1.2. 而实名制的弊端缺点是可影响信息安全,造成信息或隐私泄露。
  12. 管理系统中计算机er图怎么画,使用PowerDesigner绘制ER图的详细教程
  13. 编解码学习笔记(九) QuickTime系列
  14. svn clean up 特别慢
  15. 2D激光雷达运动畸变矫正_base里程计
  16. 苹果app store水军_苹果终止App Store开发者反叛的解决方案
  17. 【华为报考全攻略】华为考试自己如何报考?
  18. 计算机教室布线方案流程,学校计算机网络教室、多媒体教室布线及设备安装施工实施方案.docx...
  19. Hive(2):Apache Hive 安装部署
  20. 女友问粉丝过万如何庆祝,我发长文《保姆级大数据入门篇》感恩粉丝们支持,学姐|学弟看了就懂

热门文章

  1. python商城源码_自学Python才几天,就成功编写出俄罗斯方块游戏,附自学教程
  2. 员工任务管理系统c语言,C语言职工信息管理系统课程设计任务书.docx
  3. linux vi如何输入井号,为什么我可以使用井号(#)来破坏vim用户功能命名规则
  4. 计算机网络设置中如何删除家庭组,【求助】Windows无法从该家庭组中删除你的计算机...
  5. fabric shim安装合约_智能合约简介_智能合约开发_Hyperledger Fabric_开发指南_区块链服务 BaaS - 阿里云...
  6. 首例猪心移植人体,川妹子立大功!36 岁哈佛女学霸敲除猪致病基因,成顶刊收割机...
  7. 院士:青年科学家5年内拿不出成果就面临淘汰,想坐‘冷板凳’都坐不了!
  8. 恭喜你,20级考研生!你将在考研前看到这篇最靠谱的学习方法!
  9. 联邦学习--数据攻击(2)
  10. c++静态成员函数为什么不能为虚函数?