22 各大云厂商K8s产品对比
你好,我是雪飞。
今天我给你讲讲云厂商的 K8s 相关产品,如果你的公司刚好使用了云厂商的产品,而且要使用 K8s 集群来部署应用,你可以直接选择云厂商成熟的 K8s 托管产品,而不需要自己再使用虚拟机来搭建 K8s 集群。
现在各大云厂商都针对开源 Kubernetes 做了自己的封装,提供了高可用的管理节点,接入了多种存储产品、网络产品,提供了成熟的可视化管理工具,提升了集群性能和安全防护。你可以在它们的托管 K8s 产品上通过可视化工具来管理节点、部署应用、管理配置、使用存储和网络、查看和监控集群状态,帮助你快速过渡到 K8s 的容器集群环境,降低运维成本,提高部署效率。
相对于自建 K8s 集群,使用云厂商的 K8s 产品有以下优势:
- 简化集群管理: 提供超大规模容器集群管理、资源调度、容器编排、代码构建,屏蔽了底层基础构架的差异,可以通过 Web 管理工具快速方便的管理工作节点和资源对象。
- 集成负载均衡: 集成云厂商自己的第三方负载均衡,支持在多个容器之间分配流量,只需指定容器配置和要使用的负载均衡器,容器服务将自动配置好网络访问。
- 资源高度隔离,服务高可用: 集群在私有网络中运行,因此可以使用自己的安全组和网络 ACL,这些功能为你提供了高隔离水平,构建高度安全可靠的应用程序。
- 镜像快速部署: 高品质的 BGP 网络保证镜像极速上传下载,轻松支持容器秒级启动,极大程度降低了运行开销。
- 性价比高: 花费少量费用即可获得高稳定、高可靠、可扩展的集群管理节点,免去运维烦恼。
认识各个云厂商的产品
我这里简单介绍一下阿里云的 ACK 托管集群、腾讯云的 TKE 标准集群、亚马逊的 EKS 、华为云的 CCE Standard,这些都是各个云厂商的基于 K8s 的托管集群产品。
ACK
阿里云的 ACK(Aliyun Container Service for Kubernetes)提供高性能且可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。托管集群的管理节点由 ACK 维护,提供了稳定、高可用、高性能、安全的 K8s 服务。每一个托管集群的管理节点包含至少两个 kube-apiserver 实例和三个 etcd 实例,并且部署在不同的可用区以提供可用区级别的高可用性。ACK 会持续监控托管组件,保障服务 SLA,并且及时修复安全漏洞。
TKE
腾讯云的 TKE(Tencent Kubernetes Engine)基于原生 Kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务。你可以在托管的云服务器实例集群上轻松运行应用程序。使用该服务,你将无需安装、运维、扩展你的集群管理基础设施,只需进行简单操作,便可启动和停止 Docker 应用程序,查询集群的完整状态,以及使用各种云服务。
EKS
亚马逊的 EKS(Amazon Elastic Kubernetes Service)是一项托管 Kubernetes 服务,用于在 AWS Cloud 上运行 Kubernetes。在云中,EKS 可自动管理负责安排容器、管理应用程序可用性、存储集群数据和其他关键任务的 K8s 管理节点的可用性和可扩展性。通过 EKS,你可以利用 AWS 基础设施的所有性能、规模、可靠性和可用性,以及与 AWS 网络和安全服务的集成。
CCE Standard
华为的 CCE Standard(Cloud Container Engine Standard)是一个企业级的 Kubernetes 集群托管服务,支持容器化应用的全生命周期管理,提供高度可扩展的、高性能的云原生应用部署和管理方案。云容器引擎深度整合高性能的计算(ECS/BMS)、网络(VPC/EIP/ELB)、存储(EVS/OBS/SFS)等服务,并支持 GPU、NPU、ARM等异构计算架构,支持多可用区(Available Zone,简称AZ)、多区域(Region)容灾等技术构建高可用 K8s 集群。
这些云厂商提供的 K8s 托管产品功能比较类似,也比较成熟。所以我在下面通过阿里云的 ACK 给你展示一下如何使用云厂商的产品。这里参考了阿里云的 官方技术文档。
使用阿里云 ACK
使用前准备
- 注册阿里云账号并完成实名认证。
- 使用的 Demo 镜像应用 “ACK-Cube” 为一个线上魔方游戏,我们将该游戏通过容器镜像部署到 ACK 集群中。完成课程后,你可以创建一个魔方游戏应用。
操作步骤
首次使用 ACK 时,需要开通并授权容器服务 ACK,然后创建集群,在集群中部署魔方应用。
步骤一:开通并授权容器服务 ACK
首次使用时,需要开通容器服务 ACK,并为其授权相应云资源的访问权限。
- 登录 容器服务 ACK 开通页面。
- 仔细阅读并选中容器服务 ACK 服务协议,然后单击立即开通。
- 登录 容器服务管理控制台。
- 在容器服务需要创建默认角色页面,单击前往 RAM 进行授权,进入 云资源访问授权 页面,然后单击同意授权。完成以上授权后,刷新控制台即可使用容器服务 ACK。
步骤二:创建 ACK 集群
通过配置主要参数快速创建一个ACK 集群。
-
登录容器服务管理控制台,在左侧导航栏选择集群。
-
在集群列表页面,单击页面右上角的创建集群。
-
在 ACK 托管版页签下,配置以下配置项。未说明配置项保留默认设置即可。
- 单击下一步:节点池配置,配置以下配置项。未说明配置项保留默认设置即可。
-
单击下一步:组件配置,所有组件使用默认配置。
-
单击下一步:确认配置,然后选中并阅读服务协议,单击创建集群。
注意: 集群的创建时间一般约为几分钟。创建完成后,在集群列表页面,可以看到新创建的集群。
步骤三:部署并公开应用
在新创建的 ACK 集群中快速部署一个无状态应用(Deployment),即魔方游戏镜像,并将该应用向公网公开。
- 在集群列表页面中,单击目标集群名称(即 ACK-Demo)。
- 在集群管理页左侧导航栏,选择工作负载 > 无状态。
- 在无状态页面,单击使用镜像创建。
- 在应用基本信息页签,设置应用名称为 “ack-cube”。
- 单击下一步,在容器配置页签,配置容器的相关参数。
- 单击下一步,在高级配置页签,单击服务(Service)右侧的创建。
- 在创建服务对话框中,设置服务的相关参数,单击创建,以通过该服务公开 “ack-cube” 应用。
- 在高级配置页签,单击页面右下角的创建。创建成功后,默认进入创建完成页面,会列出应用包含的对象,你可以单击“查看应用详情”进行查看。
步骤四:测试应用
通过服务(Service)来访问新部署的容器化应用。
- 在集群列表页面中,单击目标集群名称(即 ACK-Demo)。
- 然后在左侧导航栏,选择工作负载 > 无状态。
- 单击目标 Deployment,即 “ack-cube”。
- 单击访问方式页签,找到新创建的服务(即 ack-cube-svc),单击外部端点列的链接,即可访问魔方游戏。
注意: 这里就自动使用了阿里云的负载均衡,所以创建了 Loadbalance 类型的 Service,因此直接生成了一个外网访问 IP。
释放资源
使用 ACK 集群所产生的费用包括两部分。一部分是集群管理费用,由容器服务 ACK 收取。另一部分是所使用的其他阿里云云产品资源费用,按照各云产品规定的计费规则计费,由各云产品收取。
完成课程后:
- 如果无需继续使用集群,请登录容器服务管理控制台,在集群列表页面的操作列,单击目标集群对应的更多 > 删除。在删除集群页面,选中同时删除集群下的 ALB 资源、同时删除集群下的 PrivateZone 资源、同时删除集群管理关联的 SLS 项目,选中我已知晓以上信息并确认删除集群,然后单击确定,即可删除集群。
- 如果需要继续使用集群,请为阿里云账号充值。
小结
今天给你介绍了云厂商的 K8s 产品,你可以在它们的托管 K8s 产品上通过可视化工具来管理节点、部署应用、管理配置、使用存储和网络、查看和监控集群状态,帮助你快速过渡到 K8s 的容器集群环境,降低运维成本,提高部署效率。
我主要介绍了阿里云的 ACK 托管集群、腾讯云的 TKE 标准集群、亚马逊的 EKS 和华为云的CCE Standard,并通过阿里云的官方技术文档,带你了解了使用阿里云 ACK 部署应用的流程。
每个云厂商的产品都比较类似,也都比较成熟,选型的时候你可以都去体验一下,选择最适合你的云厂商即可。
本专栏到这就结束了,期待我们进一步的沟通和交流,也希望这个专栏能帮助你顺利拿下CKA认证。