Openshift结合IaaS的LB与Nginx实现高可用可伸缩外部负载均衡器

背景

  • Openshift在集群部署时需要额外提供一个负载均衡器,该负载均衡器对master api及router haproxy中的80与443服务进行负载,实现高可用。
  • 如果在IaaS上部署Openshift集群的话,我们很自然地会使用IaaS的LB服务,直接对LB作TCP端口负载就解决问题了,既实现了需要的负载均衡,而且还有健康检查,负载高可用,非常方便。
  • 但是我们的Openshift集群并不是部署在IaaS上,而是额外部署。IaaS上的LB无法直接将集群中的服务器作为监听器的后端进行负载,这时我们就需要在Openshift集群下额外独立部署负载均衡器。考虑到保证负载均衡器的高可用性,及监控等,这会是一个比较复杂的过程。
  • 那么我们是否可以结合IaaS上的LB现有的机制,制定一套既方便部署,又高可用的方案呢?答案是肯定的。
  • 该篇就是介绍如何结合IaaS的LB与代理应用Nginx实现Openshift高可用的外部负载均衡

原理

  • 负载均衡器应用,首先大家想到的最多的两款应用是:Nginx与Haproxy,我们选用了Nginx。
  • 将IaaS的LB与Nginx结合的思路也很简单。在IaaS上部署两台主机,上面部署好代理应用,将代理的后端设置为Openshift的服务器,同时将这两台服务器作为IaaS上的LB的监听器的后台。


    IaaS LB与Nginx结合提供外部负载

部署操作

IaaS上资源准备

  1. 创建VPC IaaS
  2. 创建私网 IaaS
  3. 在私网下创建两台主机(instance1, instance2) IaaS
  4. 创建一个LB Iaas

搭建应用与配置

  1. LB上创建三个监听器(8443/TCP, 443/TCP, 80/TCP) IaaS
  2. LB的三个监听器的后端都配置为两台Instance IaaS
  3. 在instance上安装nginx Instance
[root@i-8 root]# yum install nginx
  1. 配置nginx Instance
    openshift route服务器IP: 99.3.1.11、99.3.1.12
    openshift master服务器IP: 99.3.1.1、99.3.1.2、99.3.1.3
[root@i-8 conf.d]# cat /etc/nginx/nginx.conf
...
events {
    worker_connections 1024;
}
stream{
    include /etc/nginx/conf.d/tcp.conf;
}
http {
...
[root@i-8 conf.d]# cat /etc/nginx/conf.d/tcp.conf
upstream nginx80{
    server 99.3.1.11:80;
    server 99.3.1.12:80;
}
server {
    listen       80;
    proxy_pass nginx80;
}

upstream nginx443{
    server 99.3.1.11:443;
    server 99.3.1.12:443;
}
server {
    listen       443;
    proxy_pass nginx443;
}

upstream nginx8443{
    server 99.3.1.1:8443;
    server 99.3.1.2:8443;
    server 99.3.1.3:8443;
}
server {
    listen       8443;
    proxy_pass nginx8443;
}
  1. 启动nginx
[root@i-8 root]# systemctl start nginx
[root@i-8 root]# systemctl enable nginx

至此一个可监控、高可用且具有弹性伸缩功能的外部负载均衡器就完成了。

演示方法

与之前访问openshift的服务一样,只是将域名解析的IP指向IaaS的LB就可以了
所有服务都能正常访问。同时对于不同的项目,可以通过创建不同的LB,来实现了负载均衡的扩容,Nginx应用也可以通过创建更多的Instance进行扩容。

补充说明

感谢有朋友提出了以下问题:
"nginx不好用,除非nginx plus,否则一个master api不可用,还是会访问到那个节点。haproxy配置也很简单,可以有健康检查,如果熟悉的话,最好使用haproxy来作为代理应用。”
朋友提出的问题确实是一个很严重的问题,我对haproxy确实不太熟悉~~。
但是朋友说的这个问题其实不必太担心,因为nginx默认的轮询方式的请求按时间顺序逐一分配到不同的后端服务器,如果后端某台服务器宕机,故障系统被自动剔除,使用户访问不受影响。所以nginx自己会对openshift的服务作了检查,来避免朋友提出的问题。
我也单独对nginx的这个健康检查作了验证,确实是有效的。
再次感谢提出问题的朋友,后序我也找时间使用haproxy作下测试。

Haproxy的配置

global
    ......
    maxconn  20000
    nbthread 2
    ......
frontend f_8443 *:8443
    use_backend b_8443
    mode  tcp

backend b_8443
    mode  tcp
    balance  roundrobin
    server master1 99.3.1.1:8443
    server master2 99.3.1.2:8443
    server master3 99.3.1.3:8443

frontend f_443 *:443
    use_backend b_443
    mode  tcp

backend b_443
    mode  tcp
    balance  roundrobin
    server infra1 99.3.1.11:443
    server infra2 99.3.1.12:443

frontend f_80 *:80
    use_backend b_80
    mode  tcp

backend b_80
    balance  roundrobin
    server infra1 99.3.1.11:80
    server infra2 99.3.1.12:80
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 230,247评论 6 543
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 99,520评论 3 429
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 178,362评论 0 383
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 63,805评论 1 317
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 72,541评论 6 412
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 55,896评论 1 328
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 43,887评论 3 447
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 43,062评论 0 290
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 49,608评论 1 336
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 41,356评论 3 358
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 43,555评论 1 374
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 39,077评论 5 364
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 44,769评论 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 35,175评论 0 28
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 36,489评论 1 295
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 52,289评论 3 400
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 48,516评论 2 379