Openshift-F5整合(總結)——與Router方案對比
這篇文章來自9月份自己在F5年度會議上分享的PPT,感謝過程中幫忙一起聯調的小夥伴。
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: v1kind: Servicemetadata: 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無法支援灰度釋出 (可以引入)
對外所有南北流量都走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.220Bigip-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並存
作者:潘曉華Michael
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/758/viewspace-2820630/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JavaScript遍歷方法總結與對比JavaScript
- OC與Swift閉包對比總結Swift
- TCP/UDP對比總結TCPUDP
- React Router 使用總結React
- vue-router總結Vue
- ClickHouse 與 MySQL 資料庫適用場景對比總結MySql資料庫
- Vue-Router和React-Routerd對比VueReact
- Oracle和SQL對比語法總結OracleSQL
- electron打包更新與整合sqlite小總結SQLite
- MyISAM與InnoDB兩者的區別、詳細總結、效能對比
- 跨域方案總結與實現跨域
- 【持續部署】批量部署工具,總結、對比
- 開源深度學習庫對比總結深度學習
- 對前端跨域方案的認知總結前端跨域
- 小程式與Vue對比·class與style繫結Vue
- 【資料結構】棧和佇列的總結對比資料結構佇列
- 分散式全域性ID生成方案彙總和對比分散式
- Docker總結整合(一)Docker
- maven 學習總結(六)——Maven與Eclipse整合MavenEclipse
- 小程式與Vue對比·資料繫結Vue
- [比賽總結]ACM div3 G 比賽總結ACM
- Node.js 版本管理工具對比總結Node.js
- 「比賽總結」AT ABC 358 總結
- 對SVN的落地與實踐總結
- react-router v6新特性總結React
- 使用Maven整合SSH總結Maven
- 實現固定寬高比盒子的幾種方案的總結
- HTTP總結(簡介、狀態碼和各版本對比)HTTP
- 建立型設計模式對比總結 設計模式(八)設計模式
- 視覺化經典模型的對比實驗總結視覺化模型
- Android總結之json解析(FastJson Gson 對比)AndroidJSONAST
- [JavaWeb]SpringMVC與Struts2區別與比較總結JavaWebSpringMVC
- web直播方案總結:Web
- RAID 方案總結AI
- AngularJS與RequireJS整合方案AngularJSUI
- 好程式設計師前端教程css對齊方案總結程式設計師前端CSS
- Android對Bitmap的記憶體優化方案總結Android記憶體優化
- 資料儲存加密的主流方案對比與難點解析加密