Openshift:可靠的Kubernetes发行版

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

2018-11-25  本文已影响43人  潘晓华Michael

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

Openshift的基础概念

Openshift简介

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

Openshift Pod

实例:

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

Openshift 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集群中应用的一种解决方案

Route.png

Openshift Router的不足

F5与Openshift集成架构与实践

F5与Openshift集成架构

F5与Openshift集成架构

F5与Openshift中的Service集成

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集成

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实现灰度发布

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实现灰度发布的不足

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

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

F5与Router并存
上一篇下一篇

猜你喜欢

热点阅读