时尚网站设计,网站后台动态播放怎么做的,wordpress主题学习,一句简短走心文案K8S容器编排系统容器编排系统需要满足的条件#xff1a;服务注册#xff0c;服务发现负载均衡配置、存储管理健康检查自动扩缩容零宕机K8S整体架构图K8S整体架构Kubernetes采用主从分布式架构#xff0c;包括Master(主节点)、Worker(从节点或工作节点)#xff0c;以及客户端…K8S容器编排系统容器编排系统需要满足的条件服务注册服务发现负载均衡配置、存储管理健康检查自动扩缩容零宕机K8S整体架构图K8S整体架构Kubernetes采用主从分布式架构包括Master(主节点)、Worker(从节点或工作节点)以及客户端命令行工具kubectl和其它附加项。K8S MasterMaster架构图etcd保存了整个集群的状态CoreOS提供(用户期望状态)。K/V存储只能存储Api Server中支持的数据范式存储Api Server提供了资源操作的唯一入口并提供认证、授权、访问控制、API注册和发现等机制controller负责维护集群的状态比如故障检测、自动扩展、滚动更新等(确保用户期望状态与实际运行状态一致)scheduler负责资源的调度按照预定的调度策略将Pod调度到相应的机器上pod是调度的最小单位K8S NodeNode架构图kubelet会监控Api Server上的资源变动若变动与自己有关系kublet就去执行任务定期向master会报节点资源使用情况。kube-proxy实现service的抽象为一组pod抽象的服务提供统一接口并提供负载均衡。POD创建过程POD创建时序图1、用户提交创建POD请求2、API Server 处理用户请求存储Pod数据到Etcd3、Schedule通过和 API Server的监听机制查看到新的pod尝试为Pod绑定Node4、过滤主机调度器用一组规则过滤掉不符合要求的主机比如Pod指定了所需要的资源那么就要过滤掉资源不够的主机5、主机打分对第一步筛选出的符合要求的主机进行打分在此阶段调度器会考虑一些整体优化策略比如把一个Replication Controller的副本分布到不同的主机上使用最低负载的主机等6、选择主机选择得分最高的主机进行binding操作结果存储到Etcd中7、kubelet根据调度结果执行Pod创建操作绑定成功后会启动container, docker run, scheduler会调用API Server的API在etcd中创建一个bound pod对象描述在一个工作节点上绑定运行的所有pod信息。运行在每个工作节点上的kubelet也会定期与etcd同步bound pod信息一旦发现应该在该工作节点上运行的bound pod对象没有更新则调用Docker API创建并启动pod内的容器8、POD创建完成K8S各组件工作流程工作流程①运维人员向kube-apiserver发出指令(我想干什么我期望事情是什么状态)②api响应命令,通过一系列认证授权,把pod数据存储到etcd,创建deployment资源并初始化。(期望状态)③controller通过list-watch机制,监测发现新的deployment,将该资源加入到内部工作队列,发现该资源没有关联的pod和replicaset,启用deployment controller创建replicaset资源,再启用replicaset controller创建pod。④所有controller被创建完成后.将deployment,replicaset,pod资源更新存储到etcd。⑤scheduler通过list-watch机制,监测发现新的pod,经过主机过滤、主机打分规则,将pod绑定(binding)到合适的主机。⑥将绑定结果存储到etcd。⑦kubelet每隔 20s(可以自定义)向apiserver通过NodeName 获取自身Node上所要运行的pod清单.通过与自己的内部缓存进行比较,新增加pod。⑧kubelet创建pod。⑨kube-proxy为新创建的pod注册动态DNS到CoreOS。给pod的service添加iptables/ipvs规则用于服务发现和负载均衡。⑩controller通过control loop(控制循环)将当前pod状态与用户所期望的状态做对比如果当前状态与用户期望状态不同则controller会将pod修改为用户期望状态实在不行会将此pod删掉然后重新创建pod。后记本文是对K8S架构原理及其工作流程的一个汇总可能会不好理解但是在学习K8S过程中这个是跳不过去的让我们一起努力吧