Kubernetes 是一个强大的容器编排平台,但它有明确的边界和定位。
Kubernetes 不是什么
-
不是全能的 PaaS 平台 :
- Kubernetes 在容器级别运行,不是硬件级别
- 提供了部署、扩展、负载均衡等基础功能
- 但它是模块化的,不是单体式系统,默认解决方案都是可选和可插拔的
-
不限制应用类型 :
- 支持多种工作负载(无状态、有状态、数据处理等)
- 只要能在容器中运行的应用,通常都能在 Kubernetes 上运行
-
不负责应用构建 :
- 不部署源代码
- 不构建应用程序
- CI/CD 工作流需要单独实现
-
不提供应用级服务 :
- 不内置提供中间件、数据库、缓存等服务
- 这些组件可以在 Kubernetes 上运行,但不是 Kubernetes 自身的一部分
-
不是完整的运维解决方案 :
- 不是完整的日志、监控、告警解决方案
- 不提供完整的机器配置、维护、管理系统
Kubernetes 的本质
Kubernetes 的核心理念是 声明式系统 ,而非传统的编排系统:
-
传统编排系统 :定义工作流程(先做A,再做B,最后做C)
-
Kubernetes :你只需声明期望的状态,Kubernetes 会持续调整当前状态以达到期望状态
-
Kubernetes设计的优点:
- 更易于使用
- 功能更强大
- 系统更健壮
- 更具弹性和可扩展性
简单类比
可以把 Kubernetes 理解为:
- 一个"基础设施操作系统",而非完整的应用平台
- 提供了容器运行的基础环境,但上层应用服务需要自行构建
- 类似于操作系统提供了运行环境,但不包含所有应用软件 Kubernetes 为构建开发人员平台提供了坚实基础,但保留了用户在关键领域的选择权,从而提供更高的灵活性。