将Dubbo部署到k8s集群环境中前的思考

将dubbo微服务迁移到k8s中的思考,这个话题看起来有些干燥,不过这都是我我的的一些总结,你认真读完,相信会有一些收获。
首先k8s环境集群这是首先齐要,通常这个确定是本身要部署好的,另外就是你须要将你的k8s集群作成一个高可用的一个集群,这样的话,后续你去扩容还有你的环境好比master节点还有一个主控节点帮你去工做,这是首当其要,这里想必不少人也知道,另外要说就是你的pod的持久化,自己你的pod的生命周期就是很是短暂的,你的pod重启或者因为一些特殊的状况的话,那么你的pod的ip那么就会变了,因此这里在这个环境当中你们想必是要去考虑它自己的一个持久话的问题,好比你的jenkins这个要是在k8s中运行的话,那么就须要考虑它的一个工做目录,jenkins_home这个工做目录,也就是jenkins生成的文件,还有你的去拉代码的时候所产生的工做目录都会实地落到你的这个工做目录下的,这个目录你要是在k8s中去部署jenkins,咱们就须要将这个工做目录采用这种持久化的这个功能将它共享挂载在咱们的其余服务器中的一个目录当中,若是不去作持久化的话,你的工做目录当你的pod重启就会丢失,固然你的容器可能会用到一些维护的相关的命令,要是pod重启你的命令也是会丢失的,或者你想对这个容器作免登陆的话,你是须要在你容器中去生成这个ssh-keygen的,这样的话,你容器重启这个目录也是会丢失的,将jenkins部署到k8s中也是能够,可是维护这个容器起来,仍是相对来说,比较麻烦的。
后来也是将咱们的jenkins部署到咱们的单独一台服务器上。
部署到单独一台服务器的话,这里我是以这种war包的形式去启动的,这里我为了将咱们的jenkins的工做目录进行修改,自己它这个工做目录是放在.jenkins下这个工做目录下的,因此我进行对它这个目录tomcat.catalina.sh的这个目录进行修改添加了export JENKINS_HOME=/opt/k8s/project这个共享目录下,并在你的环境变量中生效,启动你的war包这样的话,你的文件都会落地到这个共享存储中,这是我是使用的这个nfs,这个共享存储去作的这个。
其余这个共享存储也有不少,像这种的话,好比还有glusterFS,ceph,等等这些都是能够去作的。
而后接下来就是部署咱们的coredns,这个主要也是来完成咱们k8s的service的一个域进行解析的,好比咱们去安装一个busybox的一个测试工具,能够去测试一下咱们集群中的kubernetes.default,通常你的coredns还有你的网络CNI插件没问题的话,是能够正常去解析的,后面就是部署这个elk这个日志文件系统,这个的话,我是将它部署在k8s中的,也是为了方便管理,固然部署在外面也是能够的,我这里是使用的elasticsearch,filebeat,kibana,进行对咱们微服务dubbo的项目进行对日志的收集的,
这里的话,这种pod类型也就是这种亲密性pod,也就是在一个pod中去部署两个容器,
而后经过这个filebeat在咱们的容器中去部署,经过这个采集器去收集咱们的日志,而后输出到es中,而后交给kibana来进行对咱们dubbo微服务的日志进行输出,这是这一块
,接下来须要的就是控制器进行对咱们的项目的域名进行解析,这里我使用的是ingress-nginx ,不过k8s中的ingress的控制器支持不少,至少10多种,每一个人用的也不同,因此根据本身的选择来走
而后就是使用jenkins去将咱们的项目发布出去,部署到咱们的k8s中,咱们这里目前是使用的Jenkins配置自由式发布,每一个项目的需求都不同,咱们使用写的脚本去发布的,或者你使用这种pipeline去发布这个也是能够的,由于咱们是gitlab的形式去托管代码的,因此咱们经过jenkins须要将对gitlab进行免交互登录,第一在jenkins中ssh-keygen,生成id_rsa id_rsa.pub,一个是私钥一个是公钥,将这个私钥存放着jenkins上的key中,将pub这个公钥放到gitlab中的托管处就能够了, 配置git 执行参数化构建,选择maven,提早将因此的配置都部署好,jdk环境以及maven,放在/etc/profile下并执行好,而后构建执行后,在你项目下的target下面会有这个jar包,或者就是应用程序,咱们这里是应用程序,咱们将这个应用程序经过写dockerfile的形式将它封装成容器,而后给他一个jre环镜将这个服务部署进去,而后上传到咱们的harbor仓库上,再经过k8s的yaml进行去执行,将咱们的服务发布出去nginx

未完待遇:git

相关文章
相关标签/搜索