技术
Kubernetes
容器编排平台
Kubernetes 是一个开源系统,用于自动化容器化应用的部署、扩缩和管理。它将容器分组为便于管理和发现的逻辑单元,并持续努力让集群的实际状态与你声明的状态保持一致。
工作原理
Kubernetes 集群由控制平面(API 服务器、调度器、控制器管理器、etcd)以及运行容器运行时和 kubelet 代理的工作节点组成。你把期望状态 —— 应该运行多少个 Pod 副本、它们需要什么资源、应如何暴露 —— 以 API 中对象的形式描述出来,Kubernetes 的控制器会持续将集群调谐到该状态。
核心概念
- Pod —— 最小的可部署单元:一个或多个共享网络和存储的容器。
- Deployment —— 管理一组副本 Pod,并处理滚动更新和回滚。
- Service —— 一个稳定的网络端点,在一组 Pod 之间对流量做负载均衡。
- Namespace —— 将集群划分为相互隔离的逻辑环境的方式。
- Controller(控制器) —— 监视集群状态并使其向期望状态靠拢的控制循环。
为什么团队选择 Kubernetes
- 可移植。 同样的清单可以运行在任何符合规范的集群上,从笔记本电脑到大型多区域部署。
- 自愈。 失败的容器会被重启,不健康的节点会被排空,工作负载会被自动重新调度。
- 可扩展。 自定义资源定义(CRD)和控制器让你可以扩展 API,以管理你自己领域特定的资源。
- 生态系统。 几乎每个 CNCF 项目 —— 服务网格、可观测性工具、GitOps 控制器 —— 都是为了运行在 Kubernetes 上并扩展它而构建的。
快速开始
安装 kubectl,获取一个集群的访问权限,并应用一个 Deployment 和 Service 清单来运行你的第一个工作负载。下面的指南在此基础上,介绍运行真实应用的常见模式。