Coursera 笔记

Module 02 · Kubernetes Basics

Container Orchestration容器编排简介

Coursera ↗

欢迎来到容器编排的世界!观看完本视频后,你将能够:

  • 定义容器管理的挑战 🔍
  • 判断何时需要容器编排 🕹️
  • 演示容器编排的好处 🌟

容器旅程的开始

每个人的容器之旅都从一个容器开始。然而,事情很快就会发生变化。随着新应用程序的编写和项目的全球部署,最初的一个容器最终会变成多个容器。最初,这种增长还比较容易应对,但不久后,管理容器的工作量将变得无法承受。想象一下,如何将数百或数千个容器连接、管理并扩展到像数据库或网页应用程序这样的庞大应用中,这可能会失控。


容器编排的必要性

为了实现规模化并管理大量的容器,容器编排是必需的。容器编排是一个自动化管理容器生命周期的过程,适用于基于容器或容器化应用程序的管理。其涉及到:

  • 部署 🚀
  • 管理 🔧
  • 扩展 📈
  • 网络连接 🌐
  • 可用性保障 🔒

容器编排在大型动态环境中是必不可少的,它简化了复杂性,实现了无需人工干预的部署和扩展,提升了速度、敏捷性和效率。它无缝集成到CI/CD工作流程和DevOps实践中,让开发团队更高效地使用资源。


容器编排的功能特点

容器编排工具具有多种功能,主要包括:

  • 定义应用程序的容器镜像及其所在的位置(例如在哪个注册表中)📍
  • 提高容器的资源配置和部署,形成更自动化、统一、顺畅的流程 🔄
  • 确保容器间的网络连接安全 🔒
  • 保障容器的可用性和性能,发生系统资源故障时,将容器迁移至其他主机 🔄
  • 按需求扩展容器,并负载平衡请求 ⚖️
  • 处理资源分配和容器调度到底层基础设施 ⚙️
  • 执行滚动更新和回滚 🔄
  • 进行健康检查,确保应用正常运行,或在失败时采取必要措施 ⚠️

容器编排使用YAML或JSON编写配置文件,配置每个容器,使其能够找到资源、建立网络和存储日志。容器编排还会根据预定义的设置或限制,自动调度新的容器部署到集群中,找到合适的主机。


知名容器编排工具

  • Marathon:Apache Mesos的框架,是由加州大学伯克利分校开发的开源集群管理工具。它可以通过自动化管理和监控任务,帮助扩展容器基础设施。
  • HashiCorp Nomad:一个免费的开源集群管理和调度工具,支持Docker及其他独立、虚拟化或容器化的应用程序,适用于所有主流操作系统,无论是本地部署还是云端环境。
  • Docker Swarm:自动化容器化应用的部署,但特别设计用于与Docker引擎和其他Docker工具一起使用,非常适合已经在Docker环境中工作的团队。
  • Kubernetes:由Google开发并由Cloud Native Computing Foundation(CNCF)维护的开源平台,是容器编排的事实标准。Kubernetes自动执行一系列容器管理任务,包括部署、存储配置、负载均衡、扩展、服务发现和自我修复等功能。

容器编排的好处

容器编排帮助企业达成业务目标,提高盈利能力,主要通过以下几方面的自动化优势:

  • 提高生产力:减少每个容器的手动安装和管理负担,降低错误率,让开发团队能够专注于应用程序的改进。
  • 更快的部署:更快速地迭代发布新特性,迅速部署容器化应用程序。
  • 减少成本:容器相比虚拟机或传统服务器,具有较低的开销,资源消耗更少,降低成本。
  • 更强的安全性:共享资源并隔离应用进程,提高容器的整体安全性。
  • 易于扩展:通过单个命令扩展应用程序,快速恢复错误,确保高可用性,自动检测并解决如基础设施故障等问题。

结语

通过本视频,你了解到管理大量容器是一个复杂的任务。容器编排自动化了容器生命周期,带来更快的部署、更少的错误、更高的可用性和更强的安全性。

流行的容器编排工具包括:

  • Marathon
  • Nomad
  • Docker Swarm
  • Kubernetes

最终,容器编排通过提升生产力、部署速度、降低成本、强化安全性、扩展性和错误恢复,帮助团队实现更高效的工作。