谈到云原生, 错不过"容器化"

每个容器维护自己的依赖关系和运行时,这可能会有所不同,上图我们看到在同一主机上运行的Product微服务的不同版本。每个容器共享基础主机操作系统,内存和处理器的一部分,但彼此隔离。

容器模型遵守“十二要素应用”的Dependencies原则。

要素2指定“每个微服务隔离并打包其自己的依赖项、更改项(不影响整个系统)”

容器同时支持Linux和Windows工作负载。

虽然存在多个容器供应商,但Docker已经成为打包、部署和运行云原生应用程序的事实标准,Docker占据了最大的市场份额,该公司一直在推动软件容器的发展。

Why containers

  • 容器提供了移植性,并保证在跨环境时,能输出一致。通过将所有内容封装进单个程序包,可以将微服务+依赖项与基础设施隔离。
  • 你可以在安装Docker运行时引擎的 任何环境部署同一容器,容器化消除了预先配置环境的时间开销 (for框架、程序库文件、和运行时)。
  • 通过共享底层操作系统和主机资源,容器的占用空间比完整的虚拟机小很多,小体积,高密度,在一台主机上可以运行多个微服务。

容器编排

Docker Api/工具创建镜像和容器,你还需要工具管理容器。

管理容器的软件称为"容器编排器",大规模使用容器时,容器编排器至关重要。

容器编排器遵循“十二要素应用程序”中的disposability和concurrency原则。

要素9:强调“服务实例应该是一次性的,这样有利于快速启动(提供可伸缩能力),优雅关闭让系统保持正确状态”,

要素8:强调“服务在大量小的相同进程(副本)上扩展,而不是在可用的功能最强大的计算机上扩展单个大型实例”。

目前市面上存在多个容器编排器,但Kubernetes已成为云原生世界的事实标准,这是一个可移植、可扩展的、开源的、管理容器的平台。

你可以自建k8s集群,自行调配和管理k8s资源,这可能很复杂。

【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章