共计 2977 个字符,预计需要花费 8 分钟才能阅读完成。
这篇“Kubernetes 可以满足微服务的哪些需求”文章的知识点大部分人都不太理解,所以丸趣 TV 小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Kubernetes 可以满足微服务的哪些需求”文章吧。
一、Kubernetes 能满足微服务的马斯洛需求
这种描述需求的方法非常重要, 已经应用于许多其他领域,如员工敬业度、云计算、软件开发、DevOps 等等。所以对于微服务来说也同样适用,为了微服务的成功,清晰的需求列表必须满足。List 如下:
微服务的需求层次结构
一旦列出了微服务的主要问题(对每个人来说可能会有不同的顺序),就会发现 Kubernetes 容器编排引擎确实能够很好地覆盖这些需求中的很大一部分。我把 Kubernetes 也添加到图中。
首先,对于基础层,需要一些计算资源,并且理想的情况下,拥有一个由基础设施服务云提供商管理的可伸缩的标准操作环境。其他先决条件是,自动化的 CI/CD 流程和工件注册表,Kubernetes 可以帮助我们运行和管理。我们仍然需要一些专门的软件,比如构建的 Jenkins,以及工件存储库,比如按需 Sonatype Nexus for Docker 和 Maven for Docker Hub。
Kubernetes 可以帮助管理多个隔离环境(名称空间)、管理资源(配额和限制)、存储分配(持久卷)、执行部署和回滚(部署)、自动调度(调度)、服务发现和负载平衡(服务)、弹性和容错(pod 健康检查)。
对于某些需求,我们还需要一些额外的工具,如 Docker 或 rkt 用于容器实现,应用程序内的弹性库 (如 Netflix 的 Hystrix) 与 Kubernetes 弹性特性相结合。然后,Kubernetes 可以管理应用程序配置,并帮助运行最好的集中式日志记录、度量收集和跟踪软件,随着服务数量的增加,这些也变得非常重要。
根据微服务的性质,企业有一些特定的需求。对于 API 驱动的微服务,需要专门的 API 管理解决方案,也可以处理服务安全性 (Kubernetes 没有提供)。但是 Kubernetes 可以轻松地帮助企业运行有状态的服务(有状态的设置)、批处理作业(job) 和调度作业(cron job)。
通过一个平台提供的所有这些特性,用户可以执行一些更智能的活动,如应用程序和基础设施自动伸缩和自修复,通过自动放置、自动重启、自动复制、自动伸缩。
对于 Kubernetes 所满足的所有这些需求,团队所剩下的就是精简开发流程,拥抱 DevOps 文化以实现快速交付,并在组织层面达到反脆弱性。
二、关于 Kubernetes 你需要知道的 8 件事
这是《计算机周刊》与 Carlos Sanchez 的问答环节,Sanchez 是 CloudBees 的工程师,CloudBees 是持续交付和集成软件服务的提供商。其中开源持续集成工具 Jenkins,是 CloudBees 服务的重点。
《计算机周刊》的开源内部人士 (Computer Weekly Open Source Insider,简称:CWOSI) 提出了 8 个与 Kubernetes 最相关的问题,试图揭开这个问题的核心,因为 2017 年 Kubernetes 经历了知名度的大幅提升。
CWOSI #1: 对于那些不了解 Kubernetes 的人,你如何总结和定义这项技术?
Sanchez: Kubernetes 是一个开源平台,旨在自动化容器的部署、缩放和操作。它是一种允许在大规模集群上运行容器的技术。它支持跨大型数据中心的隔离应用程序的执行。
CWOSI #2: 为什么 Kubernetes 会在你的观点中出现——为什么我们需要它?
Sanchez: Docker 确实成功地制造了容器。事实上,谷歌已经运行了很多年几十亿的容器。Kubernetes 从谷歌的经验中得出了这种规模的容器运行,导致谷歌将这项技术引入开源世界,从而使其他人更容易地管理容器。
至于为什么我们需要 Kubernetes,这是因为对于大型和小型的组织来说,容器变得越来越重要,授权开发团队在大规模的分布式环境中运行,以便在 DevOps 和持续交付实践中更快地交付软件。在这种情况下,任何能够简化容器的有效操作和管理的东西都将受到企业的热烈欢迎。
CWOSI #3:Kubernetes 本质上是开源的,但是有多少开发人员在为一项本质上是基础设施的技术贡献代码呢?
Sanchez: 总的来说,有超过 1400 名贡献者。谷歌、红帽和微软都被包括在其中。最近,亚马逊和阿里巴巴已经成为参与这项技术的几家最大的公司。CNCF 管理整个技术。
CWOSI #4: 容器化技术是否最终意味着每个单独的组件在验证其目的和最终交付特定的产出或功能的方面更负责?
Sanchez:容器通常与微服务体系架构相关联。每个组件都期望完成一个特定的协议。这些组件有一个目的,它们有由这个协议和 API 标记的输入和输出。他们必须能够履行他们的职责。它们应该是独立的,并在体系结构中发挥特定的作用,其中有成百上千种服务共存。
CWOSI # 5:什么时候不需要 Kubernetes…当企业不需要大规模或跨多个机器的时候吗?
Sanchez:Kubernetes 是一个复杂的系统。如果企业有规模来证明部署的合理性,那么采用这种技术是有意义的。例如,如果只使用一两台虚拟机,或者没有任何更高的要求,企业可能不需要 Kubernetes,Docker 自己就足够了。也就是说,谷歌或 Azure 提供的当前云服务让我们很容易从 Kubernetes 和大规模开始。
CWOSI #6: 能给我们解释一下 Kubernetes pod 吗?
Sanchez:Kubernetes pod 实际上是一组在同一个主机上运行的容器。这些容器具有一定的特点。例如,它们共享相同的网络空间和资源。真正的 Kubernetes pod 是由需要共存的容器组成的。
CWOSI #7: 让 Kubernetes 出错,并把错误的实施组合在一起有多容易?
Sanchez:这又回到了安装上——这是一个复杂的软件,需要专门的专业知识。这就是人们使用谷歌 Kubernetes 引擎或 Azure 容器服务的原因。
也就是说,有越来越多的工具,无论是开源的还是商业的,比如 kops、kube-aws 或者 kubeadm 都可以帮助执行正确的安装。如果您不使用其中一个安装程序来简化安装,那么在此过程中可能会犯错误。
CWOSI #8: 在你看来,Kubernetes 在接下来的几年中会如何发展?
Sanchez:将会有越来越多的 Kubernetes 产品从不同的供应商进入市场,不仅仅是云提供商,还有操作系统提供商。Kubernetes 将成为集群的实际操作系统。另外,Kubernetes 将会发展成为一套标准 API,允许企业运行集群架构。
我们看到云提供商正在破坏基础设施,这样企业就可以运行 Kubernetes,而无需运行服务器。因此,我们将看到供应商提供 Kubernetes 作为服务,企业将能够在云中运行容器,而不必担心机器。AWS 已经宣布了提供这一服务的意向,这一趋势将继续在其他供应商中施行。
以上就是关于“Kubernetes 可以满足微服务的哪些需求”这篇文章的内容,相信大家都有了一定的了解,希望丸趣 TV 小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注丸趣 TV 行业资讯频道。