00:00
我们看下一个控制器DEMO。雷梦C说啊,确保全部或者一些的noe上运行一个pod副本。当有note加入集群时,他会为他们增加一块的。当有node从集群移出时,这些破也会被回收。删除DEMO将会删除他们创建的所有pod。首先这里面有一些说法,第一个叫确保全部或者一些。为什么说是一些呢?因为我们可以在我们的。从上打一些污点。那这些污点可以是不被调度的。所以在democ的创建的时候,这些。打了污点的note上就不会运行这个炮的。但是正常情况下,默认情况下,我们的所有的note都会被运行泡。运行一个有且只有一个需要注意一下哈。优先只有一个。好,那有什么典型的用法呢?比如我们的存储集群。我们卡FS,比如我们之前说过的MFS。
01:01
像那里面的窗server是不是都可以运行在我的每一个no上。提供我们的存储能力。那比如我们的日日收集工具Fla和我们的logt,对吧。那这些我们都可以去收集日志,以及我们的监控程序。普罗米修斯的no监控程序,包括我们的所谓的之前学过的Z一定端,对吧?把它封装在我们的DEMO set里,在每一个note上去运行,帮我们去收集数据。也就意味着,只要你有需求。每一个noe上都需要运行一个。属进程。去帮我们干某些事情,那DEMO set都是一个比较好的选择。那我们接下来回过去。当然当然当然当然。如果你想。我在一个懦上。运行了。好几个不同的炮的,我需要运行好几个不同的炮。那这时候怎么办?
02:02
你是不是可以把这好几个pod里的主要的进程给它提取出来,放到同一个pod里的不同。容器上。那这样的话,通过一个DEMO是不是也可以去设置。当然也可以设置三个不同的DEMO site都是可以的。需要大家注意一下。我们看下一个。Cn job。Job呢,是负责我们的批处理的任务。仅执行一次的任务。它可以保证批处理任务的一个或多个炮的成功结束。那这个有什么作用呢?比如我们可以。想备份一下我的数据库。备份数据库呢?备份代码,我就完全可以把它封装在一个跑道里去运行,对吧。那我在。放到job本里去把它执行一下,那这个脚本是不是可以正常执行,把我们的数据库备份出来。你说我直接。在我们零九操作系统里运行不也是一样吗?对,没有问题,没有。
03:00
你这样说没有问题,但是我们这个泡的。封装这个炮筒是不是可以重复利用的,这是之一,之二。如果脚本执行意外退出,是没办法重新执行的,对吧。但是job如果判断这个脚本。不是正常退出。他就会重新执行一遍,能理解我意思吗?直到正常突出为止。并且你还可以设置它的正常退出的次数,比如正常退出两次,我才允许你。这个叫不执行成功。这是job的含义。那job讲不来说,就是可以在特定的时间重复执行,那它有一些特点需要去注意一下,到时候我们在讲到这个控制器的时候再去跟大家说。没问题吧?简单看一下。那这个呢,就是我们的pod的控制器类型了,那接下来我们继续往后看。服务发泄。
04:00
之前这个概念其实已经给大家灌输过不少次了,对吧。就是我们的客户端想去访问一组炮的,注意是一组炮的哈,如果这些炮的无相干的话,是不可以通过我们的统一代理的,对吧。那pod必须要有相关性,比如是同一个我们的s RC deployment创建呢,对吧?或者拥有同一组标签,那都可以被我们的service所收集到。那也就意味着我刚才的话,其实衍生出来的一个含义就是去收集这些pod是通过我们的。标签去选择到的这个概念。非常重要。那选择到以后,那这个呢,会有自己的一个IP加上端口。那我们的客户端就可以访问的IP加端口。间接的访问到这些所谓对应的pod。并且这里是有一个R的算法存在的,也就round Robin。轮询。先访问第一次,访问第二次,访问第三次,访问第四次,以此类推,对吧。
05:00
那这是我们的一个。服务发现的一个简单说明,那当然从服务发现可以衍生出来一些别的概念。可以看一下这样的。假设我们画一个正儿八经的图。这是我们的阿帕奇。项目模块。然后前面呢,是有一些缓存服务器,比如squid。那这个呢,是我们的MYSQL,我们就不。把它画几圈,画了。假设就是这么一个简单的结构。那S前面呢,肯定是需要有个负载读器的,对吧。的,可以使我们的iOS。
06:00
假设有这么一种情况。那当然这个负载周期可以不是iOS,可以是等等,对吧。也就意味着首先我要构建一个。沙帕加PPFPM的集群。我再构建一个满收获的,我再构建一个qui,然后再构建LYS。如果我想把这个结构放在我们的K8S里运行的话。我们。看看需要几步?MYSQL是不是要运行成一个?当然。我们。买Q现在放在我们的K8中。放在我们的start four seat控制器里是可以做到的,但是集群化的话还是不是那么方便。那就意味着我们签吧。我们先把买车后封装成一个炮。
07:08
买最后封装完D以后呢,我们还有阿帕奇加PPPM。那是。居然有这么多节点,其实它们都是类似的对吧?那既然是类似的,我们之前是不是学过控制器了?我们是不是可以在deployment上面去创建?也就是我创建一个deployment deployment会。指定它的副本数目为三个副本。那这样的话,是不是有三个不同的阿帕奇PI?那再往上呢,我们会发现有三个squid,那这个squid我是不是也可以把它封装成pod,通过我们的控制器把它给控制。
08:12
那iOS呢?我们就可以靠我们集群本身的功能把它负载。这样的话,我们出现这么一种结构,你会发现不太好写,对吧,吃亏的,我们要写反向代理的话,需要写三台机器。并且我们之前讲了一个概念,就是这个pad再去退出以后,再重新建立的过程中,这个IP地址会变换,对吧。除非你采用的是,但是在PAPFPM里面是不是没有意义啊。所以这怎么办呢?我们就可以在前端,刚才我们说过了一个service,对吧,在前面加一个service。这个呢,就是PPFPM的。
09:02
它会绑定我们的PPFPM的。他的。标签选择进行绑定。那squ呢,如果想去进行返还代理设置的话,他不需要去写这三个所谓的对应的IP地址了。因为我们一直在强调这个概念。PPM一旦死亡以后,我们。的控制器会把它维稳在三个副本,那会创建出来一个新的副本取代于他。那取代他的副本跟现在这个。他们的IP地址是不一样的。那S如果在里面填写的是它的。目标IP的话,那就。会出现问题对吧,因为他一换的话,我们亏里面的所有配置文件是不是要重写啊。要重新修改对吧,重启服务这样不太友好。所以我们squi里面写的是这个service p PF PM的这么一个地址。那这样的话,Service只要squ只要去指行指定到我们的service上面即可。
10:11
并且PPFPM。这是一个泡的。MYQ也是一个泡。他们之间其实会出现一定的关联。比如我们把。MYSQL部署在我们的set里面,那它的名称是不是就不会变?那我可以通过它的名称去固定到我们对应的炮上,因为我们之前说过,K8S内部是一个扁平化的网络。那容器之间是能够互相访问的。所以我这样画。直接PAPPM里面写他的地址信息是完全没有问题的。对于这三台来说。外网用户要访问对吧。我可以再创一个SVC。我们与之绑定。通过去判断。我们的。Squid的相关的一些标签进行确定。
11:11
那这样的话,我们只需要把这个外暴露到外外部即可。此外呢,其中有一种暴露模式叫做我们的note。比如妈妈可以通过我们的in Grace等一些方案都可以去做到。那这样的话,我们就可以把这个架构完整的部署在我们的K8S集群中了。这也是我们的pod与pod之间的通讯方案。可以这么去做。那这个呢,就是我们的纸张的内容。我们这章就先讲到这里,我们下节课再见。
我来说两句