(原创)kubernetes(k8s)之使用helm离线安装zookeeper和kafka

2023年 7月 9日 48.3k 0

前提:搭建好了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   #可以看到相关的服务正在慢慢启动(等待,服务启动比较慢)

相关文章

KubeSphere 部署向量数据库 Milvus 实战指南
探索 Kubernetes 持久化存储之 Longhorn 初窥门径
征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
那些年在 Terraform 上吃到的糖和踩过的坑
无需 Kubernetes 测试 Kubernetes 网络实现
Kubernetes v1.31 中的移除和主要变更

发布评论