原创不易,请多多支持!对软件技术感兴趣的童鞋请关注我,后续技术分享更精彩。
容器编排从几年前群雄割据、各方乱战,到如今Google的k8s一统天下。能迅速力挽狂澜,已说明其技术实力。但k8s复杂的架构,不太友好的文档,确实让一些初学者望而却步。近期正好一直在学习k8s的东西,走了一些弯路。整理出来以备参考。
由于内容过多,本文将分多章介绍k8s集群构建过程,并发布demo到k8s集群,简单演示一个完整CI/CD的自动化过程。各章节内容如下:
一、k8s集群环境准备
二、rancher搭建k8s集群环境
三、rancher应用部署
四、Jenkins部署应用到rancher集群
部署资源
centos7.7虚拟机3台,对应ip如下:
- 192.168.0.110- 192.168.0.111- 192.168.0.112
192.168.0.110 : rancher和jenkins部署机器。
192.168.0.111/192.168.0.112:k8s集群node节点。笔者机器资源所限,超过3台虚拟机,个人笔记本电脑将无法工作。使用者可根据具体情况增加虚拟机节点。
Rancher添加服务
在Rancher k8s-demo集群中启动一个服务,并配置集群外网络的负载均衡访问。
在Rancher中添加集群请参考第二章节(二、rancher搭建k8s集群环境)
进入rancher页面,选择左上角,global - k8s-demo - default , 进入workload应用发布列表页。
若发布应用docker镜像是私有仓库,需设置对应秘钥信息。这里是阿里云仓库(公共仓库直接跳过改步)。
选择页面 resource - secret ,设置秘钥信息。
选择 注册秘钥 tab,并点击右侧注册按钮。
设置应用名 app-demo,选择custom,输入阿里云镜像地址。右侧填入账号密码。点击保存,完成设置。
点击听不resource - workload 按钮,回到workload列表页。
页面右上角 点击 deploy ,部署一个应用。
填入上图信息,其中部署2个pod应用实例。docker image 为阿里云镜像地址/镜像名:版本号。
点击launch,部署镜像应用。
workload显示刚新增应用记录,状态为更新中,稍等片刻。状态变为active,则部署成功。
点击列表,app-demo应用名,可查看部署应用详细信息。
如上图可见,在不同节点上,分别部署了一个app-demo实例。
回到workload列表页,点击 service discovery tab。可以看到rancher自动添加了一个app-demo应用的service服务到k8s-demo集群。
这个时候的app-demo应用只能在集群内部访问,外部想访问,还需要添加一个负载均衡设置(Load balancing)。
点击 Load Balancing tab页,添加一个负载均衡配置。
输入名称,添加 service,target选择app-demo 服务,保存设置。
稍等片刻,负载均衡列表状态变为active后,点击target地址,即可访问demo-app应用。
demo-app测试地址为 /home,返回一段描述文字和当前docker ip地址。由于部署了两个pod实例,刷新地址后可见ip地址变化,证明负载均衡设置生效。
Rancher集群中部署应用,并对外设置负载均衡到此结束。请关注我,后续将介绍Jenkins与Rancher服务部署的集成。