k8s网络模型流程图

641 阅读1分钟

图片.png

  • etcd: 键值存储数据库,维护集群内各个节点状态的一致性,保存集群的状态及配置;    
  • apiserver:处理资源操作的请求,并提供认证、授权、访问控制、API 注册和发现等机制;   
  • controller manager: 控制器管理,负责维护集群的状态,如故障检测、自动扩展、滚动更新等;    
  • scheduler:调度器,负责资源的调度,按照预定的调度策略将 Pod 调度到相应的节点;   
  • kubelet:负责维护容器的生命周期, Pod 的创建、启动、监控、重启、销毁等工作,处理Master节点下发到本节点的任务;
  • Container runtime: 负责镜像管理以及 Pod 和容器的真正运行(CRI); 
  • kube-proxy: 负责为 Service 提供 cluster 内部的服务发现和负载均衡;   
  • Flannel/calico:网络插件, 负责为整个集群提供 IP 服务;   
  • kube-dns/coredns: 负责为整个集群提供 DNS 服务; 
  • Ingress Controller: 为服务提供外网入口;

管理员请求master流程

用户发起一个对容器的操作请求

  • API Server接受到之后会首先对用户发送的指令进行验证, 没有问题后会把指令存储到etcd.
  • 同时Scheduler和Controller分别监听API Server请求验证成功后如果是新建容器,  
  • Scheduler会寻找最合适的Node用于运行容器,  
  • 而Controller通过监听获得指令之后会去完成指令的要求, 完成后会以轮询的方式校验资源(主要是容器)的状态和存储来etcd里面的指令要求的是否一致. 不一致的话进行重新部署资源(重启或者重新运行镜