Openshift-F5集成(总结)——与Router方案对比

这篇文章来自9月份自己在F5年度会议上分享的PPT,感谢过程中帮忙一起联调的小伙伴。
PPT也分享出来,地址如下:openshift与F5的联合解决方案
Openshift-F5集成(南北流量走F5)
Openshift-F5集成(续)——实现灰度发布

Openshift的基础概念

Openshift简介

红帽® OpenShift 是一款性能强大的开源企业级PaaS产品。不仅是企业级的Kubernetes,可以构建、部署与管理容器应用,还提供从开发到投入生产的整个应用生命周期内使用的完整解决方案,帮助客户享受快速创新带来的收益,同时保持企业级平台的稳定性、可靠性和安全性。
Openshift支持多种环境下部署,无论是在企业内部,公共云,或是托管环境中。

Openshift Pod

  • Pod是Openshift调度的最小单元
  • 一个Pod包含一个或多个容器
  • Pod内的容器共享网络,IP不固定


    Pod

实例:

apiVersion: v1
kind: Pod
metadata:
  name: MyApp     
  labels:
    app: MyApp    
spec:
  containers:
  - name: myapp
    image: app/myapp:latest
    ports:
    - containerPort: 9376

Openshift Service

  • Service是一个内部负均衡器,能将流量代理转发到一组pod中
  • Service能提供一个稳定可靠的内部IP
  • Service标识的一组pod可以任意伸缩,而不影响业务


    Service

实例:

apiVersion: v1
kind: Service
metadata:
  name: MyAppService     
spec:
  selector:                  
    app: MyApp
  clusterIP: 172.30.136.123   
  ports:
  - port: 9376               
    protocol: TCP
    targetPort: 9376

Openshift Router与Route

Router组件是解决外部访问Openshift集群中应用的一种解决方案

  • Router节点上运行一个特殊定制的Haproxy
  • Route为Openshift中的资源对象,配置对应的Service及域名
  • Service更新会自动更新Haproxy的配置
Route.png

Openshift Router的不足

  • Router无法支持灰度发布 (可以引入Nginx/Haproxy实现灰度发布)
  • 对外所有南北流量都走Router,随着流量增加,Router的压力也不断增加
  • 生产环境中,面对突发流量,Router的可靠性与稳定性是一个挑战
  • 全站SSL的性能压力如何解决

F5与Openshift集成架构与实践

F5与Openshift集成架构

F5与Openshift集成架构

F5与Openshift中的Service集成

  • 通过对应的应用配置ConfigMap(Openshift的配置资源)为每个ConfigMap自动创建对应的Virtual Server并与Pool映射
F5与Service

实例:

kind: ConfigMap
apiVersion: v1
metadata:
  name: myApp.vs
  labels:
    f5type: virtual-server
data:
  schema: "f5schemadb://bigip-virtual-server_v0.1.7.json"
  data: |
    {
      "virtualServer": {
        "backend": {
          "servicePort": 9376,
          "serviceName": "myAppService"
          }]
        },
       "frontend": {
          "virtualAddress": {
            "port": 8080,
            "bindAddr": "99.248.82.220"
          },
          "partition": "openshift",
          "balance": "round-robin",
          "mode": "http"
        }
      }

F5与Openshift中的Route集成

  • F5代替了Openshift中的Router组件的功能
  • Bigip-ctl启动配置中添加参数:
    --manage-routes=true,
    --route-vserver-addr=99.248.82.220
  • Bigip-ctl一启动就会在F5上创建好Virtual Server:80与Virtual Server:443
Route

实例:

apiVersion: route.openshift.io/v1
kind: Route
metadata:
  labels:
    name: f5-test
  name: f5-test
  annotations:
    virtual-server.f5.com/balance: least-connections-node
spec:
  host: f5-test.example.com
  port:
    targetPort: 8080
  to:
    kind: Service
    name: f5-test

F5与Openshift实现灰度发布

  • 手动创建Virtual Server 80(testroute)与443(testroute_https)
  • Bigip-ctl启动配置中添加参数:
    --manage-routes=true,
    --route-http-vserver=testroute,
    --route-https-vserver=testroute_https,
    --route-vserver-addr=99.248.82.220
  • 手动创建iRule规则应用到Virtual Server


    灰度

    实例:

when HTTP_REQUEST {
 if { [HTTP::host] equals "test1.apps.openshift.com" }{
   if {[IP::addr [IP::client_addr] equals 192.168.100.23/32 ]} {
  pool /f5-openShift/openshift_testapp_myapp-v2
  } else {
   pool /f5-openShift/openshift_testapp_myapp-v1
  }
 }
}

使用F5实现灰度发布的不足

  • 自定义iRule无法通过控制器自动下发,所以需要在F5端手动创建VServer及添加iRule来实现灰度发布

F5与Openshift的集成与Openshift的Router可以并存

F5与Router节点是可以并存,同时为应用提供对外服务,并不会产生冲突。

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

推荐阅读更多精彩内容