什么是容器云平台?
广义上讲,容器云平台是允许企业管理容器化应用程序的软件解决方案。它们为容器架构提供自动化、编排、治理、安全、定制和企业支持等功能。
我们可以识别几种类型的容器云平台:
- 容器引擎,如Docker和Docker企业版,提供容器运行环境,允许您创建容器、管理容器镜像并执行基本操作。
- 容器编排器,例如Kubernetes,允许您大规模管理、治理和自动化容器。
- 托管容器平台,例如GoogleKubernetesEngine,它通过附加服务(例如管理编排器和底层硬件资源)来增强容器引擎和编排器。
容器云平台如何工作?
为了说明不同类型的容器云平台如何工作,让我们看一下每种类型平台的常见示例。
容器引擎:Docker的工作原理
Docker是一个容器引擎,可让您创建和管理容器。它基于客户端-服务器架构,包括以下核心组件:
- docker客户端——触发docker命令
- docker主机——运行docker守护进程
- docker注册表——存储docker镜像
- docker客户端使用RESTAPI与docker守护进程进行通信。Docker客户端和守护进程可以在同一系统上运行。或者,您可以远程连接客户端和守护程序。
客户端可以向docker守护进程发出构建命令。然后,守护进程构建一个docker镜像并将其保存在docker注册表中。您可以使用本地存储库作为注册表,也可以从DockerHub提取公共映像。要创建正在运行的实例,您需要发出命令来创建docker容器。
容器编排器:Kubernetes的工作原理
Kubernetes提供了强大的功能,可用于在生产环境中部署Kubernetes。以下是Kubernetes架构的核心组件:
- Kuberentes部署—由Kuberenetes集群组成。
- Kubrentes集群包含两个主要组件:控制平面和计算机器(也称为“节点”)。
- 节点——作为一个独特的、基于Linux的环境,部署为物理机或虚拟机(VM)。节点使用Pod运行应用程序和工作负载。
- Pod——由容器组成。
- 容器——打包在一起的代码。
- 控制平面-负责维护集群的状态,确定应使用哪些应用程序以及每个应用程序应使用哪个容器。
- 计算
- Kubernetes部署在操作系统(OS)之上,并与节点上运行的Pod进行交互。管理员和DevOps团队使用Kubernetes控制平面发出命令。控制平面将这些指令转发给节点。
由于生产中的Kubernetes部署可以同时运行数千甚至数万个容器,因此Kubernetes利用了自动化各种流程的功能。例如,该流程可以自动为特定任务选择最佳节点、分配资源并分配pod来完成该工作。
使用容器云平台的6个最佳实践
在使用容器云平台时,尤其是在大规模部署中,以下最佳实践将帮助企业有效地运营容器基础设施。
1、容器安全
安全性必须内置到DevOps流程和容器化环境中,在其整个生命周期中。这包括开发和构建过程、测试和部署到生产。
有多种工具可用于管理容器安全性。确保您使用的工具可以评估容器集群的安全状况并识别漏洞,控制映像以确保您永远不会从受感染或受损的映像部署容器,并且可以实时监控和保护容器工作负载。
2、容器监控
部署云原生应用程序将重点从基于主机的监控转移到容器、集群和编排器级别的监控。您必须监控各个级别的容器基础设施,以确保可用性、性能并遵守服务级别协议。
3、容器存储
要设计真正的云原生应用程序,您需要采用容器兼容的存储平台。容器编排器可以连接到存储提供商并动态配置存储卷。确保您的存储基础架构与开发生命周期集成,并且可以支持容器化工作负载所需的性能和可用性。
4、容器网络
容器的可移植性和短生命周期可能会压垮传统的网络堆栈。这些不提供足够的访问和策略管理功能来支持容器化应用程序。大规模运行容器时,无需手动配置网络,并利用容器编排器的网络自动化功能。
5、容器生命周期管理
容器的寿命很短,必须仔细管理其生命周期,以防止资源蔓延和浪费。容器生命周期管理应该与持续集成/持续部署过程紧密结合。使用基础设施即代码(IaC)工具以及容器编排器或CaaS提供商的本机功能自动执行基础设施部署和操作任务。
6、容器编排
编排和调度层提供容器部署的核心功能。编排层与应用程序交互,以确保容器按预期运行并维护服务级别协议。
Kubernetes已成为容器调度和编排事实上的标准。组企业应该仔细评估独立运行Kubernetes或依赖容器即服务(CaaS)模型的利弊,后者提供了更平滑的学习曲线,但牺牲了灵活性,并可能导致供应商锁定。
转载请注明出处:https://www.cloudnative-tech.com/technology/6011.html