aws 和azure_AWS,Azure和Google Cloud上的Kubernetes

袁奇文
2023-12-01

aws 和azure

首先是容器 ,然后是Kubernetes 。 整个世界都需要摆脱部署,管理和扩展容器化应用程序的繁琐和复杂性,Kubernetes接听了这一电话。

推动Kubernetes向前发展的因素之一是Kubernetes集群可以在本地或云中运行,甚至可以跨越两者运行,从而使容器应用程序可以跨环境移植。 因此,这三大主要公共云提供商都提供托管的Kubernetes服务也就不足为奇了,您所需要的就是带上容器并让云完成其余的工作。

[Amazon Web Services,Google Cloud Platform或Microsoft Azure? 了解它们如何在InfoWorld上堆叠: Azure击败AWS的12种方法 Google Cloud击败AWS的11种方式 AWS击败Azure和Google Cloud的11种方式 | 通过InfoWorld的云计算新闻通讯了解云计算的最新发展。 ]

但是,就像每个云都有自己的专有功能列表一样,每个云的Kubernetes服务也都有自己的特点。 在本文中,我们将研究Amazon,Google和Microsoft托管的Kubernetes产品如何堆叠,特别是通过Kubernetes插件生态系统对底层云的存储和其他服务的支持方面。

AWS对容器的支持始于2014年底的Amazon Elastic Container Service ,该服务使您可以在AWS EC2实例上运行Docker容器。 如今, ECS允许您将Docker部署到EC2或AWS Fargate (无服务器选项)。

几年后, Amazon Elastic Kubernetes Service或EKS将Kubernetes支持引入了AWS。 自2018年6月开始普遍提供EKS之前,在AWS中运行Kubernetes集群的唯一方法是启动一系列EC2实例并手动配置该集群。 使用EKS,启动Kubernetes集群要容易得多:在EC2中部署工作程序节点,然后将它们指向管理节点即可。

Amazon允许您在不同种类的EC2实例上运行Kubernetes作业节点。 例如,可以在EC2竞价型实例上安排低需求的后台作业,以节省成本。 相比之下,可以在EC2预留实例上安排需要节点在长时间内连续可用的作业。

[ 单击此处注册免费的三个小时的Kubernetes入门课程,该课程由Pluralsight和InfoWorld提供。 ]

Amazon EKS为Kubernetes的新版本提供了升级机制 。 触发升级时,它将尝试使用新版本重新启动群集,如果发生任何故障,它将恢复为最后一个已知良好的配置。 不过,必须手动升级插件,并且不支持任何早于四个修订版的Kubernetes版本。 不直接支持使用Amazon Key Management Services存储Kubernetes机密,但可以将它们组合在一起

Kubernetes提供了许多用于与Amazon基础架构一起使用的官方插件和附加组件。 其中包括用于数据加密的密钥管理服务提供程序AWS IAM身份验证器以及用于Elastic Block StorageElastic File System适用于Lustre的Amazon FSx的容器存储接口驱动程序(有关Lustre的更多信息)。 请注意,CSI驱动程序仍被认为是初步的,尚未准备好用于生产。

亚马逊还拥有自己的Kubernetes控制器名册,用于与AWS集成。 请注意,其中许多工具仍处于Alpha状态,不建议用于生产环境:

  • AWS Service Operator允许您使用kubectl和Kubernetes CRD(自定义资源定义)创建AWS资源。
  • Kubernetes自定义指标适配器允许AWS CloudWatch指标用于扩展Kubernetes部署。
  • 用于管理Amazon API网关的Kubernetes Ingress控制器
  • 一个用于管理跨Amazon帐户的EKS集群的插件
  • 使用Kubernetes CRD与AWS VPN一起使用的插件
  • 一个允许Kubernetes节点自动将Pod放置在可选辅助子网中的插件
  • 一个插件 ,允许创建和管理AWS网络负载均衡器作为Kubernetes自定义资源。

Microsoft Azure Kubernetes服务

Azure对容器的支持始于2015年推出的Azure容器服务或ACS。Azure容器服务支持基本的Docker容器,Kubernetes和Mesosphere DC / OS。 2017年底,Microsoft推出了Azure Kubernetes服务 (AKS)作为ACS的替代产品。

Azure容器服务现已弃用,并计划在2020年禁用。尽管Kubernetes用户在Azure Kubernetes服务中拥有更优越的选择,但那些希望在不使用Kubernetes的情况下使用Docker的用户将直接在其社区或社区中使用Docker自己的Azure产品上的Docker。企业版。

Azure Kubernetes服务允许您同时运行Linux和Windows容器。 但是,对Windows Server容器的AKS支持仍然是不完整的,仅是因为Windows在进行中的容器的基础状态。 例如,AKS允许您在Azure容器实例(管理程序级隔离容器)中本地调度作业,但前提是它们正在运行Linux。 对于Windows容器,您需要使用Virtual Kubelet提供程序,Microsoft将其描述为“实验性开源项目,应按原样使用”。

可以从Azure命令行升级到Kubernetes的新版本 。 您还可以计划对单个节点池的升级,以减少滚动升级的破坏性。 节点池还可以用于定义具有或多或少的CPU或内存需求的VM组,因为默认情况下,群集中的所有节点都必须是同一台机器类型。

Azure的Kubernetes支持包括在GPU上运行节点池 ,尽管这仅限于Linux节点。 您还需要在有问题的节点上执行一些手动繁重的工作,例如安装Nvidia设备插件 。 但是大多数基于GPU的Kubernetes作业(例如TensorFlow机器学习 )都可以在Azure上设置和安排。

Kubernetes插件为Azure文件Azure磁盘存储提供了容器存储接口支持。 不幸的是,这两个插件仍处于alpha阶段,因此依靠它们进行生产工作是不明智的。 Kubernetes还提供了一个官方插件来支持Microsoft Azure上的集群API 。 也可以使用插件来管理Azure Key Vault中的Kubernetes秘密 ,尽管此工具不支持自动密钥旋转。

Google Kubernetes引擎

Google Kubernetes Engine或GKE可以加入许多Google Cloud功能。 访问管理和身份通过现有的Google帐户和权限基础结构进行处理。 用于Google Cloud其他地方的应用程序的Stackdriver日志记录和监视功能还提供对Kubernetes集群中应用程序的见解。 可以从Google Cloud Console或命令行控制所有Kubernetes功能。

默认情况下,新的Kubernetes集群运行最新的稳定Kubernetes版本。 默认情况下,集群主服务器会自动升级到Kubernetes的最新版本,但是您可以选择禁用此功能并根据需要执行手动启动的升级 。 集群中的所有节点必须运行相同的Google Compute Engine计算机类型。 默认的计算机类型提供一个虚拟CPU和3.75 GB的内存,但是您可以在创建集群时更改它。

Kubernetes实例运行Google自己的容器优化操作系统 ,该操作系统派生自Chromium OS项目。 与Rancher,CoreOS和其他以容器为中心的操作系统一样,容器优化的OS仅包含运行和监督容器所需的组件,从而最大程度地减少了存储和内存占用,复杂性和攻击面。

与AWS和Azure一样,Google提供了自己的容器注册表 ,还为需要自定义创建容器作为Kubernetes部署一部分的用户提供了自己的云容器构建服务 。 可以使用Google Cloud Key Management Service中保存的密钥对 Kubernetes机密进行加密。

Google Kubernetes Engine长期以来一直支持GPU驱动的节点 。 但是,您确实需要为每个节点手动设置Nvidia GPU设备驱动程序。

有两个插件为GKE提供了容器存储接口功能,一个为Google Compute Engine永久磁盘提供了插件,为Google Cloud Filestore提供了一个插件 。 两者均未获得Google的正式支持,并且都尚未在生产工作中使用。

用于Google Cloud Platform的其他Kubernetes项目包括一个Terraform模块(用于在GCE上创建Kubernetes集群)和一个用于Google Cloud Key Management ServiceKubernetes Key Management Service插件 。 这些是功能性的,但在早期仍要考虑。

翻译自: https://www.infoworld.com/article/3409093/kubernetes-on-aws-azure-and-google-cloud.html

aws 和azure

 类似资料: