k8s deployment

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s deployment相关的知识,希望对你有一定的参考价值。

参考技术A k8s的deployment是最常用的workload,也是基础设施扩缩容基础。deployment的作用:

从上到下四个圈依次是:

deployment创建出replicate,然后由replicate负责pod的创建。

使用命令实验一下

kubectl get deployments

kubectl get rs

从名字上可以很清楚的看到ref关系,rs的名字是deployment的名字+rs编号,pod的名字是rs的名字+pod的Hash。

可以有两种方法,一种是将yaml中的容器版本修改一下,重新apply一次,另外一种显示的进行修改,这里我们看一看显示的进行修改
···
set image deployment nginx-deploy nginx-deployment=nginx:1.8
···
升级完成后kubectl get pods,

可以看到ReplicaSet的编号和pods的编号都改变了,说明发生了一些事情
kubectl get rs

···
kubectl edit deployment nigix-deploy
···
修改replica为3,然后使用kubectl get pods查看

可以看到原有的两个pod没有变化,并且在同样一个rs上新增了一个pod

此时我们先查看一下历史

一共有两次历史,一次是首次,第二次是升级,然后就是当前的扩容了。

可以看到会回退到老的rs上

主要是k8s控制器的工作原理,控制器会执着的循环,直到当前状态达到期望状态,这里有两个控制器,一个deployment控制器,一个rs控制器

通过原理可以看到,rs是维系多版本的关键,而rs的数量是进行扩缩容的关键,这样一个设计是比较巧妙而且强大的。

以上是关于k8s deployment的主要内容,如果未能解决你的问题,请参考以下文章

创建资源对象实例

kubernetes部署服务

k83 svc

第十二篇Camunda系列-事件篇-信号事件

第十二篇Camunda系列-事件篇-信号事件

Kubernetes三大核心概念