K8S架构与组件
kubectl:
是一个客户端管理工具,直接管理API server,提供请求给API server,中间有auth认证。用户使用kubectl命令来请求API Server接口完成相应操作。
Master组件:
kube-apiserver:
作为集群统一入口,只有API server才能访问和操作etcd集群
kube-control-manager:
负责任务(控制器)
kube-scheduler:
做集群节点的调度(调度器)
etcd:
保存集群状态数据(数据库)
Node组件:
kubelet:
接收master下发的任务,并行处理
kube-proxy:
实现pod网络代理,维护网络规则和四层负载均衡工作
container runtime:
容器引擎,运行容器
K8S核心概念
pod
- 最小部署单元
- 一组容器的集合
- 一个pod中的容器共享网络命名空间
- pod是短暂的
controller
- ReplicaSet:确保预期的pod副本数量
- Deployment:无状态应用部署
- StatefulSet:有状态应用部署
- DaemonSet:确保所有nod运行同一个pod
- Job:一次性任务
- Cronjob:定时任务
service
- 防止pod失联
- 定义一组pod的访问策略
Namespace:命名空间,实现资源隔离
CGroup:控制组,实现资源控制
Label:标签,附加到某个资源上,用于关联对象、查询和筛选
Annotations:注释