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
- TCP/UDP對比總結TCPUDP
- ClickHouse 與 MySQL 資料庫適用場景對比總結MySql資料庫
- Vue-Router和React-Routerd對比VueReact
- MyISAM與InnoDB兩者的區別、詳細總結、效能對比
- Openshift-F5整合(南北流量走F5)
- electron打包更新與整合sqlite小總結SQLite
- 【持續部署】批量部署工具,總結、對比
- 跨域方案總結與實現跨域
- 【資料結構】棧和佇列的總結對比資料結構佇列
- 對前端跨域方案的認知總結前端跨域
- 小程式與Vue對比·class與style繫結Vue
- ReferenceField、EmbeddedDocumentField和LazyReferenceField的使用和總結對比
- 「比賽總結」AT ABC 358 總結
- 分散式全域性ID生成方案彙總和對比分散式
- Docker總結整合(一)Docker
- 小程式與Vue對比·資料繫結Vue
- Node.js 版本管理工具對比總結Node.js
- 對SVN的落地與實踐總結
- react-router v6新特性總結React
- 20240405比賽總結
- 20240502比賽總結
- 20241020比賽總結
- 20240609比賽總結
- 20240713比賽總結
- 20240705比賽總結
- 20240708比賽總結
- 使用Maven整合SSH總結Maven
- 實現固定寬高比盒子的幾種方案的總結
- Python==與is對比Python
- HTTP總結(簡介、狀態碼和各版本對比)HTTP
- 視覺化經典模型的對比實驗總結視覺化模型
- 建立型設計模式對比總結 設計模式(八)設計模式
- web直播方案總結:Web
- 好程式設計師前端教程css對齊方案總結程式設計師前端CSS
- 結對作業總結
- Linux大檔案重定向和管道的效率對比總結Linux
- 整合學習總結(Ensemble Learning)