一、定义

  1. Kubernetes 的定义

Kubernetes 是一个开源的容器编排平台,它可以:

  • 自动部署、调度和管理容器;
  • 监控容器健康状态并重启失败容器;
  • 实现负载均衡、服务发现;
  • 自动扩缩容(Horizontal Pod Autoscaler);
  • 管理存储和配置。

一句话总结: Kubernetes = 集群级的容器编排与管理系统

二、核心概念

2. Kubernetes 核心概念

1. **Node(节点)**  
   实际运行容器的服务器,可以是物理机或虚拟机。  
   两种角色:  
   - Master Node(控制平面):管理集群状态  
   - Worker Node(工作节点):运行应用容器

2. **Pod(最小部署单元)**  
   Pod 是 Kubernetes 中最小的调度单位,内部可以包含一个或多个容器。  
   - 单容器 Pod:最常用  
   - 多容器 Pod:容器共享存储和网络

3. **Deployment**  
   用于声明应用副本数、更新策略,保证指定数量的 Pod 持续运行。

4. **Service**  
   提供 Pod 的稳定访问入口。  
   类型:  
   - ClusterIP(内部访问)  
   - NodePort(节点端口)  
   - LoadBalancer(外部访问)

5. **ConfigMap & Secret**  
   配置和敏感信息管理,与容器解耦。

6. **Volume(存储卷)**  
   持久化数据,如数据库或日志。

三、k8s的集群架构

控制平面(Master Node)组件:

  • kube-apiserver:API 服务入口
  • etcd:存储集群状态
  • kube-scheduler:调度 Pod
  • kube-controller-manager:控制循环
  • cloud-controller-manager:云相关接口

工作节点(Worker Node)组件:

  • kubelet:管理节点上的 Pod 生命周期
  • kube-proxy:服务网络代理
  • 容器运行时:Docker 或 containerd

四、k8s的优势

- 高可用:节点宕机,Pod 自动迁移  
- 弹性伸缩:根据负载自动调整副本数  
- 服务发现:通过 Service 名称访问 Pod  
- 自动回滚:Deployment 更新失败时可回退  
- 标准化部署:YAML 文件描述应用状态,版本可控

更多推荐