openshiftk8s区别(k8s和openstack区别)
今天怡怡来给大家分享一些关于k8s和openstack区别方面的知识吧,希望大家会喜欢哦
openshiftk8s区别(k8s和openstack区别)
openshiftk8s区别(k8s和openstack区别)
1、ipvs是建立在netfilter的钩子函数上,但它使用hash表作为底层数据结构并工作于内核空间,因此流量转发速度特别快、规则同步性很好,Deployment是kubernetes在1.2版本中引入的新概念,用于更好的解决Pod的编排问题,为此,Deployment在内部使用了ReplicaSet来实现目的,我们可以把Deployment理解为ReplicaSet的一次升级,两者的相似度超过90%Deployment的使用场景有以下几个:1)创建一个Deployment对象来生成对应的ReplicaSet并完成Pod副本的创建2)检查Deployment的状态来看部署动作是否完成(Pod副本数量是否达到了预期的值)3)更新Deployment以创建新的Pod(比如镜像升级)4)如果当前Deployment不稳定,可以回滚到一个早先的Deployment版本5)暂停Deployment以便于一次性修改多个PodTemplateSpec的配置项,之后在恢复Deployment,进行新的发布6)扩展Deployment以应对高负载7)查看Deployment的状态,以此作为发布是否成功的标志8)清理不在需要的旧版本ReplicaSet可以通过kubectl命令行方式获取更加详细信息除了API生命与Kind类型有区别,Deployment的定义与Replica Set的定义很类似。
2、controller/deploymentdemo.ymlDeployment支持自定义控制更新过程中的滚动节奏,如“暂停(pause)”或“继续(resume)”更新作。
3、比如等待批新的Pod资源创建完成后立即暂停更新过程,此时,仅存在一部分新版本的应用,主体部分还是旧的版本。
4、然后,再筛选一小部分的用户请求路由到新版本的Pod应用,继续观察能否稳定地按期望的方式运行。
5、确定没问题之后再继续完成余下的Pod资源滚动更新,否则立即回滚更新作。
6、这就是所谓的金丝雀发布(Canary Release)默认情况下,kubernetes 会在系统中保存前两次的 Deployment 的 rollout 历史记录,以便可以随时回退(您可以修改 revision history limit 来更改保存的revision数)。
7、注意: 只要 Deployment 的 rollout 被触发就会创创建pod,使用pvc建一个 revision。
8、也就是说当且仅当Deployment 的 Pod template(如 .spec.template )被更改,例如更新template 中的 label 和容器镜像时,就会创建出一个新的 revision。
9、其他的更新,比如扩容 Deployment 不会创建 revision——因此我们可以很方便的手动或者自动扩容。
10、这意味着当您回退到历史 revision 时,只有 Deployment 中的 Pod template 部分才会回退。
11、kubectl rollout history deployment deploymentdemo1kubectl rollout status deployment deploymentdemo1Deployment 可以保证在升级时只有一定数量的 Pod 是 down 的。
12、默认的,它会确保至少有比期望的Pod数量少一个是up状态(最多一个不可用)Deployment 同时也可以确保只创建出超过期望数量的一定数量的 Pod。
13、默认的,它会确保最多比期望的Pod数Kuberentes 版本v1.17.5中,从1-1变成25%-25%Deployment为Pod和Replica Set(下一代Replication Controller)提供声明式更新。
14、只需要在 Deployment 中描述想要的目标状态是什么,Deployment controller 就会帮您将 Pod 和ReplicaSet 的实际状态改变到您的目标状态。
15、也可以定义一个全新的 Deployment 来创建 ReplicaSet或者删除已有的 Deployment 并创建一个新的来替换。
16、Replicas(副本数量):.spec.replicas 是可以选字段,指定期望的pod数量,默认是1。
17、Selector(选择器):.spec.selector是可选字段,用来指定 label selector ,圈定Deployment管理的pod范围。
18、如果被指定, .spec.selector 必须匹配 ,否则它将被API拒绝。
19、如果.spec.selector 没有被指定, .spec.selector.matchLabels 默认是。
20、在Pod的template跟.spec.template不同或者数量超过了.spec.replicas规定的数量的情况下,Deployment会杀掉label跟selector不同的Pod。
21、Pod Template(Pod模板):.spec.template 是 .spec中要求的字段。
22、.spec.template 是 pod template. 它跟 Pod有一模一样的schema,除了它是嵌套的并且不需要apiVersion 和 kind字段。
本文到这结束,希望上面文章对大家有所帮助。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系 836084111@qq.com 删除。