什么是 Kubernetes?
将微服务的分离式设计与容器的原子性相结合,可以横向扩展对需求作出响应的应用。 在无人机跟踪应用之类的复杂解决方案中,部署、更新、监视和移除容器的过程会遇到一些困难。
在了解 Kubernetes 中的内容之前,应先了解两个概念:容器管理和业务流程协调程序。
什么是容器管理?
容器管理是组织、添加、删除或更新大量容器的过程。
无人机跟踪应用包含负责执行缓存、排队或数据处理等任务的多项微服务。 其中每一项服务均托管在一个可以单独部署、更新和缩放的容器中。
例如,通过无人机跟踪应用的网站,你会发现在一天中的特定时间,需要更多站点缓存服务实例才能保持性能,因此你添加了更多的缓存服务容器实例。
接下来,假设你已增加了缓存实例的数量,并且需要推出新版本的微服务。 需要更新所有活动容器才能使用新版本。
容器管理帮助你处理这些手动重复的任务。
什么是容器业务流程协调程序?
容器业务流程协调程序是自动部署和管理容器化应用的系统。 在管理过程中,业务流程协调程序会动态响应环境中的变化,以增加或减少部署的应用实例数。 它还会确保在发布新版本的服务时,所有已部署的容器实例均得到更新。
定义 Kubernetes
Kubernetes 是一种可移植且可扩展的开放源代码平台,用于管理和编排容器化工作负载。 Kubernetes 可简化复杂的容器管理任务,并提供声明式配置,以便在不同的计算环境中协调容器。 此业务流程平台可提供与你可能已了解的平台即服务 (PaaS) 或基础结构即服务 (IaaS) 产品/服务相同的易用性和灵活性。
Kubernetes 的优势
使用 Kubernetes 的优势基于多项任务的抽象。
这些任务包括:
容器的自行修复,例如,重启失败的容器或替换容器
根据需要动态地纵向扩展或纵向缩减已部署的容器计数
容器的自动滚动更新和回滚
管理存储
管理网络流量
存储并管理敏感信息,如用户名和密码
重要
请记住,上述所有关于 Kubernetes 的内容都需要配置,且需要充分了解基础技术。 例如,你需要了解虚拟网络、负载均衡器和反向代理等概念以配置 Kubernetes 网络。
Kubernetes 的注意事项
借助 Kubernetes,你可以将数据中心视为一台大型计算资源。 你无需担心容器的部署方式和位置,而只需根据需要部署和缩放应用。
但必须了解的是,Kubernetes 并不是附带管理和协调容器化解决方案所需全部组件的单个已安装应用:
部署、缩放、负载均衡、日志记录和监视等方面都是可选的。 由你负责寻找最适合自己需求的解决方案来解决这些方面的问题。
Kubernetes 不限制可在该平台上运行的应用类型。 如果应用可以在容器中运行,也就可以在 Kubernetes 上运行。 若要充分利用容器化解决方案,开发人员需要了解微服务体系结构等概念。
Kubernetes 不提供中间件、数据处理框架、数据库、缓存和群集存储系统。 所有这些项都作为容器或其他服务产品的一部分运行。
要使 Kubernetes 运行容器,需要容器运行时(例如 Docker 或 containerd)。 容器运行时是负责管理容器的对象。 例如,容器运行时启动、停止并报告容器的状态。
你负责维护自己的 Kubernetes 环境。 例如,你需要管理 OS 升级以及 Kubernetes 安装和升级。 你还要管理主机的硬件配置,例如网络、内存和存储。
Azure Kubernetes 服务 (AKS) 等云服务通过提供托管的 Kubernetes 环境来减少这些难题。 这些服务还简化了容器化应用在 Azure 中的部署和管理。 利用 AKS,你可以享受开源 Kubernetes 的优势,且不存在运行自己的自定义 Kubernetes 群集的复杂性或运营开销。
注意
Kubernetes 有时缩写为“K8s”。 8 表示介于单词 K[ubernete]s 的 K 和 s 之间的 8 个字符。