00:00
Hello,同学们好,这节课开始,我们带着大家一起来把我们的项目部署到这个刀客的容器当中,那容器呢,是现在比较主流的这种运维和部署的方式啊,也有很多公司呢,项目都已经上云了,那么在这儿呢,先给大家梳理一下我们往容器里边去部署呃这种自动化的构建项目的时候应该怎么做,在之前我们的这个项目是打成了炸包,然后通过jackins的插件,然后把它给扔到了我们这台测试服务器上,然后通过SH脚本来完成的清理工作啊和这个启动工作,对吧?这种方式呢比较简单,但是如果要是呃用到了云环境,比如说docker或者podman这种呃容器化的这种环境的话,那么应该怎么做呢?我们先给大家梳理一下。如果用到docker的话呢,在这儿呢,我们呃,大致分成三种方式,首先第一种方式呢,是以外挂目录的方式。去这个运行我们的,呃,这个Java项目。
01:02
这种方式呢,也是最简单的方式啊,它比较适合团队人数不是特别多啊,项目呢也不是特别大,这种方式如果比较大的项目呢,你这你这这边这个外挂目录呢,可能就啊不太合适了,这种外挂目录的意思是啥,我们在这儿呢,搞一个这个。镜像出来一个刀客镜像,这个刀客的镜像。里边呢,呃,内置的JDK。这里边是没有我们运行的这个炸包的,那么运行的炸包在哪儿,他在我们这个宿主主机,也就我们的测试服务器在宿主主机的。某个目录下,比如说在啊。啊data,然后炸包啊,比如在这下边,然后把宿主主机的目录和我们docker这个容器啊相互关联一下,就是外部呢挂载一个目录,当访问到刀客容器内部的某个目录的时候,然后会把它映射到我们宿主主机的这个目录里。
02:01
啊,那我们在部署的时候呢,还是和以前一样,通过这个插件把我的炸包给它扔到这个目录里,然后由我们的刀客容器呢,去启动一下这个容器就可以了,那如果想要停止的话,比如说还像以前一样,我们想要更新,想要停机啊,重新更新一下,那么我们只需要把这个呃,宿主主机目录里边这个炸包给它给清理掉,然后重启一下我们这个呃刀客的这个容器就可以了,镜像什么的呢,都不需要动。啊,这是第一种方式,它比较简单,而且比较节省咱们磁盘的空间啊,不需要每一次都生成新的这个这个镜像出来。这是第一种方式啊,外挂目录,那第二种方式呢,就是把我们的这个炸包直接打包到镜像里。就把啊炸包。直接打包到镜像里。这种方式啊,啊,它更适合于云原生的环境啊,怎么说呢?啊,但是这个意思同样还是我们有一台机器啊,这上面呢,呃,有这个docker的环境,当然这台机器也可以是自身的这个jacks服务器,我们先举例,这是一个外部的一个测试服务器,这台服务器上呢,有docker的运行环境。
03:16
在这个呃,运行环境下啊,我们通过这个ins推送我们的这个。炸包,额外再把我们这个这个这个docker file一块给它给推送过来。在这啊啊一个是这个docker file。还有就是这个炸包。Docker file里边啊,配置好了,我们应该怎么去生成一个镜像出来,那么这台机器上呢,有这个docker啊,这docker里边呢,呃,也可以先这个引用另外一个镜像啊,比如说我们先引用一个JDK带有JDK的镜像,因为我们所有的项目呢啊,现在来看啊,都是依赖于这个Java环境的。
04:03
那么我们在在这个docker file里也可以直接去引用这个这个这个JDK的这个,呃,其他的这个镜像啊,这个这这是一样的,那当我们这台机器啊,接收到了这个docker file和这个炸包之后,然后执行啊一次这个build build出来一个新的镜像。这个新的镜像里边就包含了我们这个炸包啊,然后我们在运行的时候呢,去运行这个镜像,用用这个新的这个镜像生成一个容器。啊,生成容器来运行,那么这种方式的话,和前面这个对比起来,它就显得稍微重了那么一些,但是呢,它更适合云原生的环境,也就是我们说的这种第三种方式,这第三种方式啊,啊是依托于第二种方式,还是打包到镜像里。生成。
05:01
新镜像。然后推送到。呃,我们的这个,呃,刀客私服里。这种方式呢啊是嗯,比较大型的企业,或者是你的项目团队人比较多啊,然后你的这个生产环境和你的这个测试环境都是这种原生的环境啊,都用了这个docker k8S这一套云原生的环境下,那么就可以这么做,这儿呢,呃,我们除了这台机器啊,需要有这个刀客的环境之外啊,然后。呃,我们还需要具备连接我们内网私服的这个这个能力。这台机器呢,可以只做构建啊,然后我们在啊这台机器的,呃,这个构建完成之后,我们再去连接一下这个刀客的私服,现在刀ER的私服呢啊,基本上最主流的也就这个这个这个哈or是吧。
06:02
Harbor。呃,这个harbor啊,现在已经开源免费了,这是V公司啊,开源免费出来的,那我们可以由这台机器接收到这个docker。和这个炸包,然后之后呢,啊,生成新的镜像,还是要生成新的镜像。但这生成完新的镜像之后呢,我们就不在这儿去创建容器运行了,而是把这个镜像直接推送到这个我们的这个哈勃私服里边,推送到这个私服里边之后有我们这个K8S啊集群。K8S集群。从这个hober里边呢,再去拉取回来这个镜像,当然K8S集群里边,你想运行,呃,这个镜像就生成这个新的容器的话,它也需要这个,呃,刀客的环境啊,如果要是大型的微服务项目,比如说我们一个注册中心,那么我们扔到了这个hober里边,然后我们需要这个,嗯。
07:04
同时启动五个啊注册中心同时呢,某一个服务可能也需要启动多个,那么就需要用这种方式,就K8S去拽这个ho上的这个镜像,然后呃,生成多个。多个这个,呃,这个这个。这个这个容器啊,然后让它同时来运行啊,这是中大型项目,可以这么做啊,那么这一部分内容啊,也就是啊,从从这个我们部署到刀客之后,这后边这一部,这这部分内容呢,可以参考一下这个K8S相关的课程,在我们这个上硅谷里边啊都能找得到,在这边呢,我咱们的这套课程里呢,就已经严重超纲了,而主要给大家讲这个。呃,S为主,这是主要的三种方式,那么给大家来实现前两种方式啊,嗯。其实前两种方式啊,就比较适合这个中小型这种团队基本也就够用了啊。
08:01
如果项目特别大啊,那你就一定要采用这个这种方式,用这个K8S集群啊去转啊,或者你没上K8S,那你推到私服里边,你也可以通过脚本啊去启动多个这个刀客容器啊,当然啊,你要想把容器管理的更好,推荐大家用这个K8S,如果想监控能好的,还有这个,呃,像这个普罗米修斯啊克纳等等等这种呃监控的这种监控中心,当然还有这种调度中心啊,有很多这种其他相关的这个组件和中间件啊,也可以深入的再去学习学习。啊,这是我们的这几种方式啊。
我来说两句