k3s+rancher+gitlab+gitlab-runner

2020-05-01  本文已影响0人  子非鱼意

生产环境 centos7

nfs服务器 centos7

管理服务器 ubuntu18.04

总的流程:安装k3s容器编排系统,使用docker安装rancher os,将k3s交给rancher管理(web可视化),再用rancher部署其他应用

安装K3S

选择k3s 而不是k8s:轻量,使用container而不是完全体的docker,加入SQLite原生支持,使用traefik原生支持k8s网络的负载均衡代替旧的nginx-ingress

服务和客户节点相同操作:

如果你的服务器在国外或者有翻墙代理代理,那么直接运行下面的命令:

wget -O k3s https://get.k3s.io && chmod +x k3s && ./k3s --no-deploy traefik

docker 安装和配置

new:

19.09.08 update: 推荐使用snap包管理器,这是一个新的支持多种linux发行版的包管理器,利用了虚拟空间,所以解决了软件api的问题,让linux在软件安装方面变得像windows一样统一和方便~~~/手动滑稽

old:

rancher部署

Rancher 是 用来管理kubernetes集群的web端
官方DOC

名称 商店url 分支 作用范围
helm http://mirror.azure.cn/kubernetes/charts/ master global
incubator http://mirror.azure.cn/kubernetes/charts-incubator/ master global

网络优化NGINX-INGRESS

system项目中在应用商店安装NGINX-INGRESS

使用方法:非system项目中,

①工作负载的端口映射中网络模式选择集群IP

②添加对应应用的负载均衡,如果使用泛域名解析到管理节点ip,如在域名服务商dns解析你有 *.app.cloud.cn >> rancher_ip 这样的解析

假设有工作负载(应用)nginx,你可以添加这样的ingress负载均衡,域名nginx.app.cloud.cn,工作负载nginx,容器端口80

则访问 nginx.app.cloud.cn 会负载均衡到nginx服务上,同理你可以访问 wordpress.app.cloud.cn 解析到 wordpress 服务上

nginx-ingress使单ip节点的集群可以运行不同的web服务而不会有端口冲突的问题,你甚至可以在同一集群上部署多个nginx,而这些“相同”的nginx却可以”互相独立“的服务,这一点类似于BGP网络,即使一个服务gg了,但如果备份的服务还在运行,那么流量将会导入这个备份的服务,这样避免了单节点故障,使服务能长久地运行,而且服务升级时可以新老并行,这样可以给用户足够过渡到新服务地时间

部署gitlab社区版

集成jenkins

集成runner

gitlab-runner 的负载均衡执行命令行

注册一个runner

gitlab-runner register

按照提示依次填入http://your_gitlab_ip/admin/runners给出的url和token,其他根据个人需求填写,执行环境选择kubernetes

集成openldap

waiting。。。。

gitlab集成k3s网络(现在还有bug,gitlab需要独立于rancher才能安装helm,暂时不推荐~)

在gitlab 中添加kubernetes集群,我们需要补全信息

在Rancher Web中集群这里可以使用kubectl命令行和k3s交互

!注:新版本gitlab 默认禁止本地网络的webhook,所以我们要在Admin->settting->network->Outbound requests 中
勾选Allow requests to the local network from web hooks and services 或者添加本地ip白名单

上一篇下一篇

猜你喜欢

热点阅读