0%
资料
基本概念
minikube
- 一种本地部署k8s集群的方案, 底层使用docker/qemu/VirtualBox等驱动
- 使用docker时, 使用了Docker in Docker 的方案, 在docker内部再拉起一个dockerd
k8s概念
- kubectl: 一个工具, 把各种命令转换为http 请求, 转发给kube-apiserver, 并将结果反向转换
- 控制平面(Control plane) : k8s集群的管理和调度
- 节点(Node): 具体运行某个进程的机器/虚拟机, 部署了k8s控制需要的进程
- Pod: k8s调度的最小单位, 由一个或者多个容器构成, 单个pod在单个node上运行, 可以通过localhost互相访问
- ReplicaSet: 确保指定数量的 Pod 副本(Replicas)始终在集群中运行, 挂掉的自动拉起, 多出的自动删除, 一般由Deployment管理
- Deployment: 提供声明式的 Pod 部署管理,支持滚动更新、版本回滚、暂停/恢复更新等高级功能, Deployment 是比 ReplicaSet 更高层的抽象,封装了 ReplicaSet 的创建和更新逻辑
- Deployment 通过创建和管理多个 ReplicaSet 来实现版本控制。每次更新会生成一个新 ReplicaSet,旧 ReplicaSet 默认保留以供回滚
- Service: 为 pod 提供一个稳定的 Endpoint, Service 位于 pod 的前面,负责接收请求并将它们传递给它后面的所有pod
k8s控制平面(Control plane components )
kube-apiserver
etcd
kube-scheduler
- k8s的决策调度核心, 负责决策哪些pod要到那些node上运行等逻辑
kube-controller-manager
- 负责运行控制器进程, 各种控制器都在这里, 常见的有:
- Node Controller : 负责监控node截图, 故障时通知
- ReplicaSet Coltroller: 负责确保 Deployment 或 ReplicaSet 指定的 Pod 副本数始终符合预期,自动创建或删除 Pod
- Deployment Coltroller: 管理 Deployment 的生命周期(如滚动更新、回滚),通过控制 ReplicaSet 实现应用的无缝升级
- Service Account Controller: 为每个命名空间创建默认服务账户,并确保其 Token 和配置存在。
- Endpoint Controller: 维护 Service 与 Pod 的关联关系,动态更新 Endpoints 对象以反映当前匹配的 Pod IP 和端口。
- Job/CronJob: 执行一次性任务(Job)或定时任务(CronJob),确保任务按预期完成或周期性运
- PersistentVolume Controller: 绑定 PersistentVolume(PV)与 PersistentVolumeClaim(PVC),处理存储卷的生命周期(如创建/删除云存储)
- DaemonSet Controller: 确保每个符合条件的节点运行一个指定的 Pod(如日志收集组件)。
- StatefulSet Controller: 管理有状态应用的部署,保障 Pod 的唯一性、有序性和稳定的网络标识及存储
cloud-controller-manager
节点和节点组件(Node components)
kubelet
- 接收一组通过各类机制提供给它的 PodSpec,确保这些 PodSpec 中描述的容器处于运行状态且健康
kube-proxy
- 集群中每个节点(node)上所运行的网络代理, 实现service网络通信
Container runtime