前提:搭建好了helm和tiller这两个软件,这里将使用helm来安装zookeeper和kafka(主要是kafka要依赖zookeeper)。
大纲:
一、tiller搭建的repo仓库的开启(博主暂时采用的方案)
二、搭建的大致思路(因为。。。所以。。。)
三、zookeeper的char包的制作
四、kafka的char包的制作
五、kafka的安装
六、成果的验证(暂时还未测试kafka的具体细节)
网站:
1、helm的官方网站:https://helm.sh/ 备注:主要是可以查看相关的文档方便
2、char包的离线下载url:https://github.com/helm/charts 备注:可以直接下载下来,然后传到服务器上
3、char包的在线下载url:https://hub.kubeapps.com/ 备注:服务器可以连接外网时使用
备注:这篇文章目前只会写一个简单的安装方式,没有挂载持久存储卷,哈哈,因为渣渣博主还没研究清楚(总有一个挂不上去,待研究)。
一、tiller搭建的repo仓库的开启
helm的安装和tiller的搭建参考另一篇文章:https://www.jianshu.com/p/2bb1dfdadee8
[root@cma-cluster-slave5 local]# pwd
/root/.helm/repository/local
[root@cma-cluster-slave5 local]# helm serve
Regenerating index. This may take a moment.
Now serving you on 127.0.0.1:8879
再另外开一个shell窗口
[root@cma-cluster-slave5 ~]# helm repo list
NAME URL
stable http://10.16.48.44/
local http://127.0.0.1:8879/charts #这儿就可以显示出当前所有的仓库列表了
二、搭建的大致思路
背景
因为kafka的元数据存储在zookeeper中,所以要先制作zookeeper,然后制作kafka。因为我没有采用先单独安装zookeeper,再单独安装kafka的方式;而是采用了将两个char包都做好,直接运行安装kafka,然后由kafka自动安装依赖的zookeeper的方式。这里需要在kafka中制作zookeeper的请求文件
三、zookeeper的char包的制作
将从 https://github.com/helm/charts 下载的包传到安装了helm客户端的服务器上,然后解压缩。
修改 charts/incubator/zookeeper 中的 value.yaml 文件,将其中的镜像地址(字段为:repository,版本号为:tag)进行更改,然后将持久卷(字段为:persistence(默认为true,修改为false))的选项关闭掉(后面研究清楚了再开)。
注意:在进行镜像地址的修改时,可以看到value.yaml文件中可以搜到好几个这样的镜像名称,有的镜像前面有一个字段:enabled: false,代表是否启动这个镜像,如果你选择为false,则不需要去管这段相关的配置文件,因为你不会去启用
[root@cma-cluster-slave5 zookeeper]# pwd
/root/charts/incubator/zookeeper
[root@cma-cluster-slave5 zookeeper]# vim value.yaml
[root@cma-cluster-slave5 zookeeper]# helm package ../zookeeper
[root@cma-cluster-slave5 zookeeper]# ls #发现生成了一个.tgz文件
查看本地仓库是否有kafka的tgz包
[root@cma-cluster-slave5 kafka]# helm search zookeeper
NAME CHART VERSION APP VERSION DESCRIPTION
local/zookeeper 1.2.2 3.4.10 Centralized service for maintaining configuration informa...
再切换到本地仓库的目录下,发现也生成了.tgz
文件,还有一个index.yaml
文件,里面记录了一些仓库的信息。
[root@cma-cluster-slave5 ~]# cd /root/.helm/repository/local/
[root@cma-cluster-slave5 local]# ls
index.yaml zookeeper-1.2.2.tgz #看到.tgz文件,同时生成了index.yaml文件
四、kafka的char包的制作(基本操作同上
)
1、修改 charts/incubator/kafka 中的value.yaml文件,将其中的镜像地址(字段为:image,版本字段为:imageTag)进行更改,然后将持久卷(字段为:persistence)的选项关闭掉(后面研究清楚了再开)
2、修改kafka中的 requirements.yaml 文件,将其中zookeeper的依赖仓库地址更改为本地的 tiller 的 repo 的地址(本博主的是:http://127.0.0.1:8879/charts,想改的话,可以将version版本号改为和你的一样,其余的不需要改动)
[root@cma-cluster-slave5 kafka]# pwd
charts/incubator/kafka
[root@cma-cluster-slave5 kafka]# vim value.yaml #修改镜像地址和关闭存储卷功能
[root@cma-cluster-slave5 kafka]# vim requirements.yaml #将url链接替换成你的本地tiller的repo
[root@cma-cluster-slave5 kafka]# rm -rf requirements.lock #删除原来的文件
[root@cma-cluster-slave5 kafka]# helm dependency update ../kafka #将zookeeper的rexxx.lock文件更新
[root@cma-cluster-slave5 kafka]# helm package ../kafka
备注:helm dependency update ../kafka 和 helm package ../kafka也可以直接合成一条命令:helm package –dependency-update ../kafka
查看本地仓库是否有kafka的tgz包
[root@cma-cluster-slave5 kafka]# helm search kafka
NAME CHART VERSION APP VERSION DESCRIPTION
local/kafka 0.13.4 5.0.1 Apache Kafka is publish-subscribe messaging rethought as ..
五、kafka的安装
直接执行命令进行安装即可
[root@cma-cluster-slave5 ~]# helm install --name my-kafka local/kafka
[root@cma-cluster-slave5 ~]# helm list #可以查看到启动了服务
[root@cma-cluster-slave5 ~]# kubectl get pod -o wide #可以看到相关的服务正在慢慢启动(等待,服务启动比较慢)