Kubernetes 概述
- Kubernetes(k8s):由 Google 开源的容器编排系统。
- 名称由来:Kubernetes 单词较长,通常省略中间8个字母,简称 k8s。
- 它位于应用服务和服务器之间,通过策略协调和管理多个应用服务。
- 通过 YAML 文件配置,实现应用的自动部署、自动重启和自动扩缩容。
Kubernetes 架构
-
控制平面(Control Plane):相当于集群的大脑,负责管理和控制工作节点。
- 组件包括:
- API Server:提供 API 接口,用于操作服务资源。
- Scheduler:负责资源调度决策。
- Controller Manager:负责应用服务的创建和关闭。
- etcd:作为存储层,保存集群状态和数据。
- 组件包括:
-
工作节点(Node):相当于集群的手脚,负责执行任务,运行应用服务。
- 组件包括:
- Pod:容器的运行实例,k8s 中最小的调度单位。
- Kubelet:负责 Pod 的生命周期管理。
- Container Runtime:负责容器的生命周期管理,如 Docker。
- Kube Proxy:负责 Node 的网络代理和请求转发。
- 组件包括:
Kubernetes 核心概念
- 集群(Cluster):由控制平面和多个工作节点组成。
- 容器镜像(Container Image):包含应用代码和依赖环境的打包文件。
- 容器(Container):应用服务的运行单元。
- Pod:一个或多个容器的集合,共享网络和存储资源。
Kubernetes 操作工具
- kubectl:k8s 提供的命令行工具,用于与 k8s API 交互,简化服务部署和管理。
服务部署和调用流程
- 部署服务:通过编写 YAML 文件和执行 kubectl 命令来部署服务。
- 服务调用:外部请求通过 Ingress 控制器进入集群,由 Kube Proxy 转发到对应的 Pod。
Kubernetes 优势
- 自动化部署、重启和扩缩容。
- 简化服务的部署和运维流程。
- 支持大规模容器服务的管理。
总结
- k8s 是一个强大的容器编排工具,通过控制平面和工作节点的协同工作,实现了应用服务的自动化管理和调度。
- 控制平面负责决策和指令下发,工作节点负责执行任务和运行应用。
- 通过 kubectl 工具,用户可以方便地与 k8s API 交互,实现服务的快速部署和管理。
问题
- Docker 与 k8s 之间的关系是什么?