K8s控制器是Kubernetes(简称k8s)系统中一个重要的组成部分,它是一个管理Pod的中间层,可以创建和管理多个Pod副本,确保它们按照预定的数量和行为进行运行。
通过编写yaml文件将信息全部存到etcd中,控制器通过label–selector与Pod相关联,它会自动创建相应的Pod资源,并在Pod发生故障时按照策略进行重新编排。控制器可以实现对Pod的管理,比如启动、停止、扩展Pod的数量等等。
Replicaset
标签被破坏时
由于控制器是通过标签来进行匹配的,pod标签一旦被更改,该pod就不属于控制器来管理,因此就会重建一个标签
副本数始终会和在文件中定义的副本数保持一致,这就是控制器的作用
定义的副本数量已经写到了etcd 里,整个信息已经持久化到了etcd 里面,该控制器会不断地到etcd里获取变更,不断地和当前的状态和etcd里的设定的状态做比对,如果有差异,代码将会自驱动完成更新;即使对其进行删除,也会自动创建,所创建出来的标签和之前的pod保持一致。
将副本数量改成六个
不删除之前创建的pod,直接创建
控制器维护创建的pod无法对其进行直接删除,控制器会自动将其重新拉起;需要直接删除控制器,不过此种做法,创建的所有pod会一并被删除
deployment控制器
名字忘改了,不影响
两种控制器间的关系:
pod是由rs进行创建的,而rs又是由deployment控制器进行创建的;
rs对于deployment而言就是一个版本。
创建新版本的方式:首先由feployment来创建rs,再由rs来创建设定数量的副本,当要进行升级时,deployment会新建一个rs,停用掉之前的rs,rs会将之前创建的pos副本回收,然后再由新的rs将pod副本重新创建出来
不删除之前的pod是为了便利pod副本回滚
Deployment控制器可确保在更新仅需要关闭一定数量的pod,不需要全部删除;默认情况下,它确保至少所需75%的pod处于运行状态,也就是说最大不可用pod在25%。
Deployment控制器还确保了pod数量只可能比期望的pod数量高一点点。默认情况下,它可以确保启动的pod数量比期望的pod数量多出25%(最大峰值)。
滚动更新策略
保证始终可用的副本数量为3个
每间隔五秒会一个一个的进行更新
暂停和恢复
作用:为了避免触发不必要的线上更新
暂停后,副本不会受到影响
恢复
修改好后一个一个上线
原文地址:https://blog.csdn.net/m0_65366762/article/details/134604239
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_1188.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!