02 2020 档案
摘要:recreate(重建)模式 一次性终止所有的旧版本后并一次性发布新版本 定义的部署将终止所有正在运行的实例,然后使用较新的版本重新创建它们 最适合开发环境的发布 优点: 应用状态完全更新 缺点: 停机时间取决于应用程序的关闭和启动持续时间 ramped(滚动)模式 以滚动更新的方式发布新版本,成功
阅读全文
摘要:deployment控制器(pod副本控制器) 实现pod的水平扩展和收缩功能 遵循滚动更新的方式来升级现有的容器 deployment操作的不是pod对象 而是控制replicaSet对象通过它来间接控制Pod滚动更新 Deployment 同样通过"控制器模式",来操作 ReplicaSet 的
阅读全文
摘要:StatefulSet实现Pod的拓扑状态 Stateful状态集在创建和扩展的时候有特殊的限制,如果一个有状态集期望的Pod数量是N,那么有StatefulSet会从0开始依次创建这些Pod在第一个Pod正常运行之前是不会创建第二个Pod.在删除Pod的时候,则是从第N个Pod开始反向依次删除 S
阅读全文
摘要:PV和PVC概念 PVC描述的则是Pod所希望使用的持久化存储的属性.比如Volume 存储的大小、可读写权限等等 PVC对象通常由开发人员创建或者以PVC模板的方式成为StatefulSet的一部分,然后由StatefulSet控制器负责创建带编号的PVC PVC要真正被容器使用起来就必须先和某个
阅读全文
摘要:kubelet组件 Pod调度完成后,Kubernetes就需要负责将这个调度成功的Pod在宿主机上创建出来,并把它所定义的各个容器启动起来.这些,都是kubelet 这个核心组件的主要功能 kubelet本身也是按照“控制器”模式来工作的 就是一个控制循环.驱动控制循环(主循环)运行的事件 1.P
阅读全文
摘要:custom-metrics部署 架构分析 prometheus组件: 负责存储获取到的k8s集群中各种监控数据 node_exporter组件: 是prometheus安装在每个节点采集数据的agent custom-metrics-apiserver组件: 负责接收用户和响应用户发起的rest风
阅读全文
摘要:HeapSter介绍 用来统一收集和展示k8s集群中各个节点中cAdvisor上报的数据 HeapSter默认使用的是内存存储 无法持久化保存历史数据 需要单独安装InfluxDB来保存cAdvisor上报的数 kubelet中的cAdvisor插件负责收集各自主机和主机上运行Pod的资源数据 1.
阅读全文
摘要:GPU设备管理 Kubernetes实现对GPU等硬件加速设备管理的支持 需求: 只要在Pod的YAML里面声明某容器需要的GPU个数,那么Kubernetes为我创建的容器里就应该出现对应的GPU设备以及它对应的驱动目录 原理: 当用户的容器被创建之后这个容器里必须出现如下两部分设备和目录 1.
阅读全文
摘要:优先级(Priority)和抢占(Preemption)机制 优先级和抢占机制,解决的是Pod调度失败时该怎么办的问题 正常情况下,当一个Pod调度失败后,它就会被暂时“搁置”起来,直到Pod被更新,或者集群状态发生变化,调度器才会对这个Pod进行重新调度 特殊要求的场景: 当一个高优先级的Pod调
阅读全文
摘要:调度器功能 默认调度器的主要职责,就是为一个新创建出来的Pod寻找一个最合适的节点(Node) 调度器对一个 Pod 调度成功,实际上就是将它的 spec.nodeName 字段填上调度结果的节点名字 预选节点 从集群所有的节点中,根据调度算法挑选出所有可以运行该 Pod 的节点默认调度器会首先调用
阅读全文
摘要:Ingress介绍 每个Service都要有一个负载均衡服务,所以这个做法实际上既浪费成本又高.作为用户,更希望看到Kubernetes为我内置一个全局的负载均衡器.然后,通过我访问的 URL,把请求转发给不同的后端 Service.这种全局的,为了代理不同后端Service而设置的负载均衡服务,就
阅读全文
摘要:外界连通Service Service 的访问信息在Kubernetes集群之外,其实是无效的 如何从外部(Kubernetes 集群之外),访问到 Kubernetes 里创建的Service 方式1(NodePort) 创建一个NodePort类型的service 不显式地声明nodePort字
阅读全文