什么是Kubernetes
Kubernetes(简称 K8s) 是一个开源的容器编排平台,最初由 Google 开发,后来捐赠给 Cloud Native Computing Foundation。
简单理解:
Docker 解决“如何运行一个容器”,Kubernetes 解决“如何管理成千上万个容器”。
为什么需要 Kubernetes
假设你的电商系统有:
- 用户服务(user-service)
- 订单服务(order-service)
- 商品服务(product-service)
- 支付服务(payment-service)
每个服务运行多个 Docker 容器:
user-service
├── container1
├── container2
└── container3
order-service
├── container1
├── container2
└── container3
如果:
- 某个容器挂了
- 流量暴涨需要扩容
- 服务器宕机
- 发布新版本
靠人工管理几乎不可能。
于是 Kubernetes 出现了。
Kubernetes 能做什么
1. 自动部署
你只需要告诉 K8s:
我要运行3个订单服务实例
K8s 自动创建:
order-service
├── pod1
├── pod2
└── pod3
2. 自动扩容
双十一来了
原来:
3个订单服务
流量暴涨:
20个订单服务
K8s 自动扩容:
order-service
├── pod1
├── pod2
...
└── pod20
3. 自动故障恢复
如果:
pod5 挂了
K8s发现后:
删除pod5
创建新的pod5
整个过程自动完成。
4. 服务发现
例如订单服务调用用户服务:
http://user-service/getUser
不需要关心:
10.0.1.1
10.0.1.2
10.0.1.3
K8s自动负载均衡。
5. 滚动发布
发布新版本:
v1 -> v2
K8s会:
删除一个v1
启动一个v2
删除一个v1
启动一个v2
直到全部升级完成。
用户几乎无感知。
Kubernetes 核心架构
Master(控制平面)
相当于大脑。
负责:
- 调度
- 监控
- 管理集群
核心组件:
API Server
Scheduler
Controller Manager
etcd
Worker Node(工作节点)
真正运行业务。
Node1
Node2
Node3
每台机器运行:
Docker/containerd
Kubelet
Kube-Proxy
最重要的概念:Pod
很多人误以为 K8s 管理 Docker。
实际上:
K8s
↓
Pod
↓
Container
关系:
Pod
├── nginx容器
└── sidecar容器
Pod 是 Kubernetes 的最小调度单位。
常见对象
Pod
运行容器。
Pod
└── Container
Deployment
管理 Pod。
例如:
replicas: 3
表示:
始终保持3个Pod
如果挂一个:
3 -> 2
Deployment 自动补:
2 -> 3
Service
服务发现和负载均衡。
订单服务
↓
Service
↓
Pod1
Pod2
Pod3
调用:
http://order-service
即可。
Ingress
外部流量入口。
例如:
www.xxx.com/user
转发到:
user-service
和 Spring Cloud 的关系
很多面试官喜欢问:
Kubernetes 会取代 Spring Cloud 吗?
实际上:
Spring Cloud 解决
应用层治理:
- OpenFeign
- Gateway
- Sentinel
- Config
- Sleuth
Kubernetes 解决
基础设施治理:
- 调度
- 扩容
- 服务发现
- 负载均衡
现代微服务架构经常是:
Spring Boot
↓
Docker
↓
Kubernetes
或者:
Spring Cloud Alibaba
↓
Kubernetes
面试一句话回答
Kubernetes(K8s)是一个开源的容器编排平台,用于自动部署、扩容、负载均衡和管理容器化应用。它以 Pod 为最小调度单元,通过 Deployment 管理副本,通过 Service 实现服务发现,通过控制平面统一调度整个集群,是当前云原生架构的核心基础设施。
如果你是 Java 后端开发,可以把 Kubernetes 理解成:
单机时代:
Spring Boot
↓
微服务时代:
Spring Cloud
↓
云原生时代:
Spring Boot + Docker + Kubernetes
而 K8s 面试最常考的一条主线是:
Pod
↓
Deployment
↓
Service
↓
Ingress
↓
Scheduler
↓
etcd
把这条链路搞懂,基本就掌握了 Kubernetes 的核心原理
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)