00:00
好,接下来我们再来部署一个search ES呢是用来做数据分析和检索的中间件,而它的这个部署呢,跟我们以前的my s red又有点不一样,这块呢,我列举了一个ES的在docker下一个启动部署的命令,我可以在docker下先启动起来,给大家看一下,如果我们在上云部署的时候,哪一块我们会发生一些变化,我在这儿呢,随便挑一台我们的工作节点,比如noe意外。我先来创建出第一步先创建一个文件夹,并且给一个777所有用户所有组都可执行的权限来准备好,然后呢,接下来我在这启动,而这个启动命令呢,我们先来分析一下,其实这个启动命令当然这个杠P端会暴露,我们后来在K8S上我们会做成服务这一块的杠一是我们的相当于环境变量,环境变量呢,由于它这一块有点像这个参数啊,它有点是一个特殊的,所以我们在双引号里边引起来环境变量的K等于一个值,然后呢,接下来第二个环境变量,现在Java的一些设置项,这又是一个值,然后接下来我们这个杠V,主要呢,杠一我们启动会有杠一的环境变量和杠V的数据挂载,我们看到ES呢,可能会在user share search data下产生一些数据,这个数据呢,我可以挂到外边,所以这是第一个,第二个我们ES呢,会产生一些配置叫user share search的conig,这个呢是一个文件夹。
01:29
我们呢也挂在外边,而且呢,这一块的挂载,我在docker里边呢,是用的我们的这个叫卷挂载,剧名卷挂载,而不是一个文件夹挂载,那这样的话呢,Docker会把我们容器内部这个文件夹里边的所有内容全部呢移到这个圈下,然后呢再来产生挂载,跟以前我们直接挂载文件夹是有不一样的,直接挂载文件夹,如果文件夹里边没有东西,那会导致我们容器内部这个文件夹里边也没有东西,而使用这个剧名券挂载,就算没有东西,我们这个券里边没有东西,他还会把容器里边的这个里边的所有东西先给我们外边这个券复制一份,然后再进行挂载,所以呢,我现在把这个先启动起来,我们进去给大家看。
02:16
先启动起来,启动的时候呢,名字叫ES01启动了,这个携带好我们启动起来,启动呢,它先下载ES的镜像,稍等一下。好,大概呢,等了五分钟左右,我这个镜像呢也下载好了,这个容器呢也启动起来,可以使用docker来检查一下docker PS主要我们这个容器的名字呢,叫ES01。所以我们只来看我们启动的这个好,我们的这个ES呢,现在就正在启动的过程中啊,正在启动。我们现在呢,直接进入到ES这个容器里边,来看一下它有哪些特殊的地方,It来进入到ES的这个容器里边,In be,这是我们的ES容器,哎,进来以后呢,又退出去了,那说明我们这个ES容器是不是启动有报错啊,没有。
03:11
然后那我重新进一下。进来以后呢,还是退出去了,来确定一下啊,确定一下我们这个ES好,它restart,那正在重新启动啊,Docker locks一下,看一下我们的这个容器到底启动肯定呢有失败,失败的原因是什么。失败的原因呢,说is得就是这个拒绝访问,这个拒绝访问,那我们的这个目录因为是挂载到外边了,这个挂载到外边,我们来确认一下啊,我们之前的这个命令挂载到外边文件夹权限。有没有给啊,My ES my data es01这肯定是给了,嗯,包括CD过来看一下my data es01L这一块的数据呢,都是有的哦,没有777,那我们现在来。
04:02
运行一下这个命令。我们来看一下ES01里边,好,没问题,再来进ES01里边,好,重新给他授个权啊,重新授个权,然后呢,我来重新进来,我召开,我再来检查一下ES01。以前的目录呢,没有操作权限啊,现在呢,应该是起来了,起来了以后呢,我来重新进去,Doer exec-it,我进到我们EX01这个容器里边,它的控制台ES的特殊之处在于这,我们先来看PWD当前所在目录是user share search。就是我们之前笔记整理的user share search,在它里边呢,有一个config文件夹,这个文件夹里边的所有东西CD到我们的文件夹,我们会看到这个文件夹里边啊,其实有非常多的东西,我们只需要挂载出来的是ES的配置文件。
05:01
最多呢,再加上我们GVM的这个设置,这两个呢是我们的核心配置文件,比如说我们ES启动GVM,包括垃圾回收器等等这些配置和我们的ES的核心配置search给加满,而除了这两个文件外,剩下的这些东西我可以都是不挂载的,所以呢,接下来我们就会产生我们这样一个需求,我们ES呢,真正在部署的时候,这是我们ES启动的pod,我们的数据挂载到外边,我可以准备一个PVC没问题,但是呢,我们的配置文件我只想挂这两个,如果呢,按照我们以前的方式挂这个文件夹的话,那这个文件夹下边的所有东西都会被覆盖,所以呢,我们在启动的时候,我们可以把ES的这两个配置我先做出来,一个是ES的压面配置,一个是GVM的option,配置。还用我们的这个DV照来登录进来,登录进来,我来重新来进行部署,我们在这里边应用负载工作,负载ES呢,也是有状态应用啊,当然部署之前呢,我们先把这个ES的配置我给它做出来。
06:13
我们比如就叫ES。Elastic search来take search的配置,这个配置呢,因为我们要挂几个配置文件,我就在这填,首先第一个配置文件,配置呢,这一块的件名件,这样呢,就写我们这个文件名。Search,好,这是第一个。然后呢,值我可以把它官方里边,我们启动默认用的这个值先复制过来,如果我们未来要修改,只需要在外边修改就行了,娘们。好值呢,就是这两个。我点一个确定,这是我们准备的一个配置文件,因为我们ES呢,还要挂载另一个配置文件,就是我们的g vm options,所以呢,我把这一块的设置项我也拿出来。
07:11
添加g vm options。而g vm options的内容。我给大家复制一下。好,我来复制啊,这个呢也粘到外边,如果我们想要修改,在这一块呢,修改也就行了,我点一个对号,点一个创建,那ES的这个配置文件我们就做好了,相当于呢,我们在这一个con map配置里边,我们准备了两个配置下,一个是ES的核心配置,一个是我们的GVM虚拟机的配置,好这两个配置做好以后呢,那我们ES的部署现在就变成了这样,我们希望呀,我们的这两个配置e search压面自动呢,作为一个文件名映射到容器的这个文件夹下,自己创建一个这个文件叫search压面和G也映射到这个文件下,加下创建一个g option,所以我在接下来的部署呢,我就可以这么来做。
08:15
来到应用负载,工作负载,我在这有状态副本集,我点一个创建,创建我们就叫his ES。Yes。我们就叫可答n search检索系统检索。我点一个下一步,我们首先选中镜像,按照我以前我们启动的这个命令,ES呢可以用这个镜像。回车。来等一下他搜索。好,镜像呢,找到没问题,然后接下来呢,我们可以给他这资源限制啊,预留,如果限制ES最大占两核,比如呢,最大占个1G的内存,在这呢可以做一个限制,然后这一块我们的容器的端口我们不用管,这都是默认的,接下来来看启动命令有没有我们什么自定义的呢?我们会发现这块没有啥启动命令,只有我们的这个杠一相当于环境变量,所以我在这环境变量里边我来填上几个,第一个叫discovery type等于一个值。
09:21
名称。把这个值呢拿过来。值,这是第一个,第二个再来添加一个环境变量名称呢是这个。值是。这一对。复制。这是第二个环境变量,好环境变量呢,我们就填好了同步主机时区,我们也勾上,我们ES启动呢,环境变量指定好我们ES呢,现在是单节点模式,然后呢,它最大占用512的GVM虚拟机内存,接下来我们就开始操作ES的杠V数据挂载,ES呢有数据挂载,也有它的配置文件挂载,所以我们接下来点击下一步。
10:07
首先数据挂载,我们使用存储卷模板点过来,我就叫ES的这个PVC,好,我们随便来写一个,然后ES呢,假设实际,然后我们来写一个读写,读写呢,我们ES的数据目录是在这一块。复制。所以我们来到这儿。来到这粘贴好,那我们这一块的目录呢,让它挂载出去啊,而且呢是单节点读写模式,点击对号没问题,我们的这个数据呢挂出去了,配置文件呢我们也得挂,所以我点击配置文件,配置文件呢,我们选择ES的配置文件,挂载呢只都挂载,挂载到哪一块,所以这一块我们得这么来写。这一块我得先写一个叫user share search con,它如果我这么来写就出错了,因为这呢是一个文件加名,我如果让它挂到下边,比方说我们这个ES的配置,这个里边呢,相当于会有一个e search压面,现在会有两个这个,所以这两个呢会被做到这个文件夹下,但是没有做的部分,这个文件下夹下的其他内容就会被覆盖,所以我们这一块呢,将下来得这么来写。
11:24
一旦我们的这个挂载如果有多个配置文件在同一个文件夹下,而且这个文件夹下呢,只有个别东西是需要个别配置文件需要挂出来的,其他都需要不动,那我们就需要用到它的子路径,所以接下来呢,我们就这么来写,首先这个文件夹下的第一个子路径叫search娘们。所以我们来用到第一个子路径,我把这个呢复制过来。那最好别手敲,万一缺个字母啥的啊,所以我在这来挂载,这是第一个,这是我挂载的第一个位置,这个位置呢,你必须告诉清楚,这是一个子路径,要不然它把这个也会当成文件夹,所以在这呢,点一个它叫子路径,我们来写search,衙们点一个确定,所以相当于呢,第一个位置是ES核心配置文件的位置,而且呢,核心配置文件是一个子路径,这个子路径我们准备好以后呢,再来选择使用特定的件和路径,因为在我们的ES con配置里边,我们有两个件,一个是search压,一个是g v option,所以呢,我选e search压面,它的挂载路径就是searchma,所以这一块的名字跟我们这一块子路径的名是一样的,这一块呢,是你当时在ES con里边配置用的名字。
12:43
好,我呢就填了第一个,我点一个对号,这呢只是填了第一个配置,因为我们还有第二个配置j vm option,所以我点进来。配置文件还是ES?只读方式挂载到我们的。这个位置。
13:02
但是呢,此时我们现在要挂的这个名就叫g oceans,这个我们也抽取出来了。而且呢,G vm option它呢是一个子路径,你明确的告诉他点一个确定,然后接下来选择特定的件,就是说在ES con里边,我把g v option挂载到你子路径里边,还是之前的关系,这一块的路径跟子路径名是一样的,而这一块的名是我们在ES conve里边配置用的K,好,我相当于把ES的两个配置文件,我就在这么做出来了。为什么要这么做?是由于我们user share这个文件夹下其实还有其他更多的东西,如果按照我们以前直接挂这个文件夹,那就完蛋了,这个文件夹里边的其他东西就会被覆盖,就相当于没有。所以呢,我们只单独挂这两个子路径的内容,好,这一块准备好以后呢,我来点击下一步,剩下呢都可以不用变,我来点击下一步。
14:04
我们的这个ES呢,就开始创建啊,诶它立马呢在运行中,因为我们这个弄到一节点之前调度了一个,所以呢,没问题,那我就可以把它弄到一上,我们自己起的这个ES给它删掉啊退一下。我们doer PS,我们自己起的这个叫ES01的这个我们就可以doer RM-F强制删除ES杠零一好了。因为我们这个节点上呢,有我们使用,呃,使用我们这个QS起的这个ES的pod,所以我们这个ES呢就起起来了,包括呢,它这个ES提起来以后,还会给我们暴露一个服务就是这个,而这个服务呢,我们也可以访问,但是但是呢还是一样,我呢不用它默认的这个,觉得这个名呢啊不好听。所以我把这个服务呢,我先点一个确定。啊给他做掉,然后呢,我们自己来创建一个服务。
15:03
指定工作负载,我们呢,就叫his ES,跟以前的这些名都一样啊,急需内访问的就是不加no his ES这个ES集群内访问。点一个下一步,然后呢,不生成我们的这个IP,我们只让它在集群内访问啊,那ES的这个地址,然后呢,ES呢有9200端口。9200是我们发送HTP请求的,以及9300端口,也可以填一个9300 9300呢不是HTTP,是TCP端口。Sunny。9300端口好,把这一块呢准备好,我点击下一步我们点击创建。所以我们这儿呢,有一个集群内的服务点,这个服务呢,来看一下集群内是不是DNS就用这个,包括呢,我们可以来测试访问一下,我怎么测试访问,嗯,我随便进一个pod里边,就是容器组里边,我假设呢,进到我们的里边吧,随便进到一个pod里边。
16:12
来看pod有没有curl命令啊,W get命令啊,都没有,那我们就进到。ES它本身嘛,ES是Java写的,它的这个镜像里边应该会有curl相关的命令啊有我呢就CUURL,我来访问HTTP冒号双斜杠,那么这呢有一个域名叫cases。它冒号9200端口回车,只要呢,大家看到这一块呢,是这个样子的,那说明我们的ES是不是就启动成功了,这是我们S给我返回打印的这个杰森,那ES当前的版本号713.4等等,这都有,所以呢ES啊,我们这个集群内的地址,任意的pod想要访问ES,用它的集群内的这个服务地址都能访问,而且是一个负载均衡,如果ES有多个的话,还是有负载均衡。
17:04
然后呢,我们在可以暴露一个集群外访问的,我们经常要做一些可用性验证,比如yes not。对。集群外访问。做一个它集群外访问呢,选择上边要生成服务的IP,然后呢,指定工作负载我们的ES点一个确定HT这边端口是9200。集群外呢,假设我只暴露一个角9200就行了啊,我点一个下一步。外网访问note的方式暴露啊,我点一个创建。现在集群外访问任何一个主题31300也是可以的,所以我CTRLC复制过来它的。冒号。31300回车,哎,我们发现呢,ES也有数据返回,那至此我们的这个ES也就安装好了,而ES的安装的核心就在于这一块。
18:08
因为我们的这个文件夹里边有一些其他非挂载项和我们真正核心要挂载的这两个配置,所以这两个配置呢,你提前抽取成con map,然后呢,以子路径的方式让它呢映射进去,我们就没有任何问题。
我来说两句