声明式API replica controller vs replica set 对比

1.在命令式API中,你可以直接发出服务器要执行的命令,例如: “运行容器”、“停止容器”等。

在声明性API中,你声明系统要执行的操作,系统将不断向该状态驱动。

可以想象成手动驾驶和自动驾驶系统。(多了会删除,少了会自动增加)

 

 

因此,在Kubernetes中,你创建一个API对象(使用CLI或REST API)来表示你希望系统执行的操作。系统中的所有组件都会向该状态发展,直到删除该对象。

例如,如果要调度容器化工作负载,不是发出“运行容器”命令,而是创建描述所需状态的API对象、pod:

创建后,此对象在API服务器上保留:

 

Deployment管理Pods和ReplicaSets,提供声明式更新。和老的ReplicationController(命令式管理)对应

2. 1rc vs rs

rc用来确保容器应用的副本数始终保持在用户定义的副本数,即如果有容器异常退出,会自动创建新的Pod来替代;

ReplicaSet跟ReplicationController没有本质的不同,只是名字不一样,并且ReplicaSet支持集合式的selector。

虽然ReplicaSet可以独立使用,但一般还是建议使用 Deployment 来自动管理ReplicaSet,这样就无需担心跟其他机制的不兼容问题(比如ReplicaSet不支持rolling-update但Deployment支持)。

2.2Deployment拥有更加灵活强大的升级、回滚功能

posted @ 2018-10-16 00:00  littlevigra  阅读(760)  评论(0编辑  收藏  举报