00:00
好,前面呢,我们说了一下K8S里边的pod,我们再来说K8S里边另外一种资源对象,那称为deployment,按照字面意思翻译过来呢,它叫部署,它有什么用?其实呢,我们来这么来考虑,如果我们现在想要在K8S集群里边启动一个应用,我们部署成一个pod,这pod的功能呢,其实太单一,举一个例子,我现在呢,假设我写好了一个Java的订单服务,这个订单服务呢,由于它的访问量很高,一我们部署到一台服务器肯定不行,所以呢,我希望K8S把这个订单服务一次性给我部署上十几份,放到各种不同服务器,所以相当同一个服务,我把它同时起上好多pod,那你想想啊,如果是我们以前我们一行命令,比如使用这个库包controller run,我们启动一个,我们如果要启动100个,难道把这个命令运行100次吗?所以很麻烦,所以此时呢,就引入了一个概念叫deploy。
01:00
我们告诉K8S,请给我做一次部署,这个部署呢,你可以告诉K8S,你这次部署你想要用哪个镜像,跟起泡的一样,你指定一下镜像,然后呢在部署,如果你创建的是部署,而不是单纯的pod,那你可以在这一块告诉K8S,比如我要十个副本,我们把这个呢成为副本数量,所以呢,这样呢,K8S就会通过它帮你来控制,先提上一个po的,一看不够,你要十个,再起一个po的,你看又不够,再起一个po的,你看又不够再起一个po的,所以呢,Deployment一句话,它是用来控制pod的,一旦deployment把POD1控制以后,Pod就赋予很多强大的能力了,强大的能力呢,都来自于deployment能力,那我们体会一下这件事情就行了,比如我以前,那为了好看起见,我们先把我们以前部署的所有pod都删了。
02:00
就不影响大家的视线了,但删除呢,你可以在可视化界面在这删除点点点,那么就用一下命令行库包ctrler,诶,我们所有的命令呢,都是库包controller delete pod,但然delete之前先看一下吧,我们有几个pod,这是我们之前的两个pod库包controller delete pod,如果你想要删这两个pod,好,我们先来做一个多个资源,你就空格两个就行了,如果这个资源没在默认名称空间,你还可以杠N写它拖写一下它所在的名称空间,而我们现在呢,就在默认名称空间,所以这一块杠N后边这一串都可以省略回车。好们现在这个pod呢,就删了,刚才的完整写法就是这样,好,我们确认呢,默认名称空间没有任何应用了,那么接下来部署应用啊,那先来看我们最普通的方式,我来部署应用,像我们以前我们部署一个pod呢,使用这个命令,想要让K8S自己下载N几镜像给我们启动一个应用就启动一个。
03:00
Hold好,库controller run mys杠刚name好,我们现在呢有了一个应用,叫它这个应用呢,我们就等它整个running吧,好,那我们接下来呢,再来部署一个,就是呢,你可以这样部署应用,你也可以创建上使用这个命令叫cooper controller create deployment,每一听就是创建一次应用部署,给这个应用部署呢,起一个名叫my to k,然后呢,使用哪个镜像,就是这个镜像,哎,我们一指定镜像,它肯定要下载这个镜像在底层给我们起一个pod,所以简单一句话,我们只要创建一次部署,这次部署呢,一定会在底层给我们启动一个或者多个pod,我们现在先来看啊,我们先创建这次部署,想要告诉K8S,我想要用TOMCAT8这个镜像给我部署一次应回车,创建完了以后呢,先来后ctrler get port来看,现在呢,我们这就得到了两个。
04:00
一个是MYINS,这个呢是由我们最以前最单纯的命令cooper control run创建的,然后呢,这个呢是由create deploy,我们想要创建一次部署而创建的,但是呢,这两个有什么不同,看好啊,我们先体会一个最简单的能力,比如我把上边我们最单纯的这次创建pod,我把创建的这个pod删了,回车,删了以后呢,我们看一下会是啥效果啊,库包ctrler给他po会发现这是不是就真删了,所以呢,如果你这么一整的话,这个删了就是真删了,但是呢,如果我现在这么来做,我们让它在这分一个屏,这是一个master啊,我现在来给大家再来监控一下,叫空包controller get pod,然后呢,有一个watch,我每隔一秒呢杠N1,我来获取一下我们现在所有的pod,看好啊。
05:00
我把这个pod删了,因为这个pod呢,不是我们用最单纯的方式启动的,是我们呢创建了一次应用部署,看一下我们这次应用部署的名叫my com k,而这次应用部署呢,会给我们创建出这么一个pod,就是不是我们直接创的,而是呢,通过这个应用部署让K8S间接自动创的,然后如果我把它已经创好的这个pod删了,其实我的是个删模拟的是啥操作,举一个例子,你这个po的呢,在二号机器呢,结果你这个二号机器直接炸了,宕机了,对吧?起都起不来了,是不是就是相当于把应用删了,但是呢,我如果把这个应用删了,大家会看会是啥效果,删除删除呢,你会看到这个,诶刚才下边那个terminating叫停止,你看啊,我删的这个应用叫5F4F 5F4F,还有这个QB就是这个QBKXD这个应用呢,删了,主要看后边这个应用呢,删了,但是呢。
06:00
起了一个新的叫CV,什么TF,你如果把它再删一次,还是一样的效果,Po看啊,它兴起的这个应用我再删,你看他说这个删了,但是呢,又兴起一个山老的,起兴的啥意思啊,就是呢,如果我们使用deployment部署的应用,我们不怕应用崩溃或者机器宕机,你机器就算当了K8S还会重新再拉起一个,我们把这个能力称为什么自愈能力,是吧,我们现在体会到了K8S里边最强大的一个能力,自愈能力,而deployment呢,其实它有更多非常多强大的能力,我们下一节课再说。
我来说两句