What is Kubernetes?

Kubernetes 名字起源于希腊语, 意思是舵手或飞行员

历史回顾

container_evolution

传统部署时代

虚拟化部署时代

容器部署时代

容器带来的好处

  • 更快的应用创建和部署: 使用容器镜像相比使用 VM 镜像更加简单和高效.
  • 持续开发, 集成和部署:
  • 开发和运维的关注点分离:
  • 可观察性不仅可以显示操作系统级别的信息和指标, 还可以显示应用的健康和其他信号.
  • 环境一致性:
  • 云和操作系统分发的可移植性
  • 以应用程序为中心的管理:
  • 松散耦合, 分布式, 弹性, 解放的微服务
  • 资源隔离
  • 资源利用率

为什么需要 Kubernetes 和 Kubernetes 可以做什么

Kubernetes 提供的能力

  • 服务发现和负载均衡
  • 存储编排
  • 自动部署和回滚
  • 自动 bin packing
  • 自我修复
  • Secret 和配置管理

What Kubernetes is not

Kubernetes 不是一个传统的, 包罗万象的PaaS系统. 由于 Kubernetes 运行在容器层面而不是硬件层面, 因此它提供了 PaaS 产品所共有的一些普遍适用的功能, 例如部署, 扩展, 负载均衡, 并允许用户集成他们的日志记录, 监控和报警解决方案.

Kubernetes:

  • 不限制应用程序的类型: 无状态, 有状态和数据处理.
  • 不部署源代码, 也不构建应用程序
  • 不提供应用级别的服务作为内置服务, 例如中间件, 数据处理框架, 数据库, 缓存, 集群存储系统
  • 不指示日志记录, 监控和报警解决方案
  • 不提供也不要求配置语言/系统
  • 不提供也不采用任何全面的机器配置, 维护, 管理或自我修复系统
  • Kubernetes 不仅仅是一个编排系统. 事实上, 它消除了编排的需要. 编排的技术定义是执行定义好的工作流程: 先做 A, 然后 B, 然后 C. 相反, Kubernetes 包含一组独立的, 可组合的控制进程, 这些控制过程连续地讲当前状态驱动到提供的期望状态. 它跟你如何从 A 到 C 的方式没有关系. 也不需要集中控制.