k8s 的边界和定位

52 阅读2分钟

Kubernetes 是一个强大的容器编排平台,但它有明确的边界和定位。

Kubernetes 不是什么

  1. 不是全能的 PaaS 平台 :

    • Kubernetes 在容器级别运行,不是硬件级别
    • 提供了部署、扩展、负载均衡等基础功能
    • 但它是模块化的,不是单体式系统,默认解决方案都是可选和可插拔的
  2. 不限制应用类型 :

    • 支持多种工作负载(无状态、有状态、数据处理等)
    • 只要能在容器中运行的应用,通常都能在 Kubernetes 上运行
  3. 不负责应用构建 :

    • 不部署源代码
    • 不构建应用程序
    • CI/CD 工作流需要单独实现
  4. 不提供应用级服务 :

    • 不内置提供中间件、数据库、缓存等服务
    • 这些组件可以在 Kubernetes 上运行,但不是 Kubernetes 自身的一部分
  5. 不是完整的运维解决方案 :

    • 不是完整的日志、监控、告警解决方案
    • 不提供完整的机器配置、维护、管理系统

Kubernetes 的本质

Kubernetes 的核心理念是 声明式系统 ,而非传统的编排系统:

  • 传统编排系统 :定义工作流程(先做A,再做B,最后做C)

  • Kubernetes :你只需声明期望的状态,Kubernetes 会持续调整当前状态以达到期望状态

  • Kubernetes设计的优点:

    • 更易于使用
    • 功能更强大
    • 系统更健壮
    • 更具弹性和可扩展性

简单类比

可以把 Kubernetes 理解为:

  • 一个"基础设施操作系统",而非完整的应用平台
  • 提供了容器运行的基础环境,但上层应用服务需要自行构建
  • 类似于操作系统提供了运行环境,但不包含所有应用软件 Kubernetes 为构建开发人员平台提供了坚实基础,但保留了用户在关键领域的选择权,从而提供更高的灵活性。