《中國電信CCSE容器云最佳實踐——王寶.pdf》由會員分享,可在線閱讀,更多相關《中國電信CCSE容器云最佳實踐——王寶.pdf(21頁珍藏版)》請在三個皮匠報告上搜索。
1、中中國電信國電信王王 寶寶1 1容器云?2 2容器云運維實踐3 3電信容器云CCSE目錄CONTENTSONE容器技術帶來應用快速迭代和高效運維能力,成為云改數轉的利器。l打破傳統軟件交付模式桎梏l基于容器鏡像的軟件交付l容器成為標準交付件,提升軟件交付和迭代效率IT交付IT架構l微服務架構的有效實現載體l服務在研發和運維上實現松耦合l輕松實現大規模分布式系統的部署和運維IT運維l容器使得應用程序降低了運行環境依賴影響l輕量以及秒級啟動能力等特性,確保了系統的連續性和高可用性容器和主機共享硬件資源及操作系統,通過對CPU、內存等資源的隔離、劃分和控制,實現進程之間透明的資源使用。容器是什么?容
2、器技術助力企業數字化轉型NetworkingKubeletContainerRuntimeOSHardwareNode1Node PoolMasterController Manager(Controller Loops)NetworkingKubeletContainerRuntimeOSHardwareNode2NetworkingKubeletContainerRuntimeOSHardwareNode3Scheduler(Bind Pod to Node)API Server(REST API)ETCD(key-value DB,SSOT)用戶u容器編排引擎提供了編排功能u編排,通常包
3、括容器管理、調度、集群定義和服務發現等。u通過容器編排引擎,容器被有機的組合成微服務應用,實現業務需求。Kubernetes架構容器編排管理容器云是按照容器為資源分割,封裝軟件運行時環境,為開發者和系統管理員提供用于構建,發布和運行分布式應用的平臺。容器云專注于資源共享與隔離、容器編排與部署,應用支撐與運行時環境。一個穩定性強、支持復雜業務場景、彈性擴展能力強大的容器云是PaaS平臺的重要支撐。集群:集群:由kubernetes統一管理與調度的主機資源的集合,一個集群包含多個主機節點 節點:節點:安裝了docker與k8s的主機(物理機或虛擬機),每個節點上都會有一個ip段用來分配給調度到該節
4、點上的容器 容器:容器:通過docker鏡像創建的運行時實例,每個容器都有一個ip地址 應用:應用:服務的邏輯管理單元,一個應用可包含多個服務,比如前端服務與后端服務 服務:服務:一個服務包含多個容器,服務的每個窗口可以分布在不同的主機節點上容器云的要素什么是容器云?ONECRM計費財務OA廣東江蘇四川西藏貴州內蒙 異地容災雙活上海浙江湖南湖北山東資源承載系統3000+容器節點6000+容器服務5000+運行容器15萬+運維效能10倍+統一技術統一架構統一開通統一配置統一監控統一運營容器云上云最佳實踐,統一標準讓技術更簡單云南青海統一標準容器云服務相同規格、相同API,提供一致操作體驗統一調度
5、容器云服務統一調度、跨域協同統一管理多級租戶管理,多維度授權控制,全局統一資源視圖容器云運維實踐之未雨綢繆1、使用規范(1)應用規劃好用戶,授權合適的功能權限;(2)合理使用命名空間和打標簽2、部署規范(1)部署集群的主機網卡名應保持一致(2)部署集群的主機用戶應具有免密sudo權限(3)提前規劃數據盤,由于要保持鏡像和日志數據,建議500G+(4)提前規劃端口號、容器IP范圍及監控等插件的部署3、資源規范(1)Pod使用的總量不超過服務器cpu、mem配置總量80%(2)設置POD的cpu、內存限額;(3)Pod的cpu、內存使用率均小于80%的應調小限額,具體調到多少,根據業務流量來定;(
6、4)多副本的Pod,各個副本的cpu、內存使用率都小于20%的,應降小副本數量及CPU/內存的限額;(5)cpu或者mem使用率超過80%的Pod,可以適當調大限額;4、負載規范(1)應盡量只使用無狀態工作負載,且通常一個無狀態工作負載對應一個微服務。(2)應盡量避免開啟服務網格、主機網絡、特權容器、latest版本鏡像、容器啟動執行命令、啟動后處理以及停止前處理命令等配置(3)應盡量避免使用自動伸縮控制副本個數(4)創建工作負載時應同時創建對應的Service(5)容器都應該配置CPU和內存的需求資源和限制資源、配置健康檢查和就緒檢查、指定容器日志掛載目錄,同時盡量使用滾動升級策略(6)應盡
7、量避免在容器中存儲數據(7)應盡量避免依賴容器pod的ip地址5、服務使用規范通常不需要開啟Headless以及配置會話保持(創建有狀態負載時才需要),僅將需要外部訪問的微服務指定為NodePort類型。6、微服務的外部訪問配置微服務的外部訪問之前應該對微服務端口進行規劃,固定每個微服務的端口號,同時盡量使用NodePort方式暴露服務,特殊需求(如七層域名轉發)可以使用Ingress轉發方式。7、配置使用規范創建配置時應盡量避免限定應用,確保配置是全局可用的,使用鏡像拉取憑證時應該先創建Harbor用戶,并使用該Harbor用戶信息來創建鏡像拉取憑證。容器云運維實踐之不當“背鍋俠”應用及時清
8、理應用容器產生的存儲,避免空間問題影響節點的pod運行處于hang狀態影響業務1、業務定義應用數據清理策略。需要關注主機/目錄塊和inode使用率,cpu和內存的使用率,避免node運行狀態異常。/var/lib/kubelet/config.yaml2、業務關注集群node運行狀況。業務需要關注calico網絡的容量,根據業務特點,及時拆分pod,避免大量數據在容器內傳輸導致網絡服務異常。如容器calico節點的流量也很大。正常萬兆網絡帶寬1250MB/s,出現18907.7MB的流量,是ovs流量或物理網卡的15倍3、業務需要關注應用容器產生的網絡流量。業務要及時關注pod占用的線程資源,
9、避免資源不足影響node甚至集群穩定a、系統級別:/proc/sys/kernel/pid_maxb、用戶級別:ulimit-uc、節點上所有Pod的總和限制:/sys/fs/cgroup/pids/kubepods/pids.maxd、每個Pod的限制:/sys/fs/cgroup/pids/kubepods/pids.max補充:for dir in ls/sys/fs/cgroup/pids/kubepods/burstable/;do echo$dir;cat/sys/fs/cgroup/pids/kubepods/burstable/$dir/pids.current;done4、業
10、務需要關注應用容器占用的線程資源。放到根分區極容易出現分區空間滿容器異常的問題,如已經部署手工修改存儲路徑,或通過軟連接實現vim/etc/sysconfig/docker-storageDOCKER_STORAGE_OPTIONS=-graph=/data01/docker5、CCSE部署的docker存儲路徑放到業務分區。6、業務端口號不要使用32768以內,不要和集群使用的端口沖突。容器云運維實踐之不當“背鍋俠”7、內核版本小于4.12主機參數配置關閉tcp_tw_recycle避免nat類操作,必須配置/proc/sys/net/ipv4/tcp_tw_recycle為08、容器集群建
11、議管理面和數據面分離。核心生產應用,不要部署到master節點。9、原則上要求應用都部署無狀態服務,避免有狀態情況下出現業務異常。禁止生產業務使用daemonset部署。10、應用要進行命名空間配置配額和合理的limits限制。Requests和limits盡可能保持一致,不要偏差超過20%。11、應用需保證同類服務至少2個及以上副本,分布在2個以上node節點,設置反親和性。12、所用應用配置容器健康檢測,使用liveness和readiness。13、容器節點內核版本升級到4.19.113及以上。14、根據操作系統資源配置,設置合理cgroup資源限制,避免k8s的應用線程占滿系統資源。監
12、控pid資源。15、避免容器跨網段通信問題,必須關閉tx-checksumming off;ethtool-K eth0 rx off tx offONECCSE(Container Cloud Service Engine)是中國電信集團自研的容器云服務引擎。提供高度可擴展、高性能的Kubernetes集群及一站式容器服務,為容器化應用提供監控、日志、負載均衡、灰度/藍綠、應用打包、HPA、持久化等基礎能力,幫助企業快速構建和運行可彈性擴展的應用,實現業務的快速交付與持續創新。CCSE 產品介紹快速實現微服務化實現敏捷開發和部署落地,加速企業業務迭代通過合理微服務拆分,將每個微服務應用存儲在
13、CCSE的鏡像倉庫中。由CCSE提供調度、編排、部署和灰度發布能力。持續集成與持續交付開放完整API給 DevOps 系統調用,實現從代碼提交到應用部署的完整流程,開發人員只需關注代碼的開發。實現代碼構建、鏡像構建和應用部署的全流程自動化。環境一致性:容器技術讓您交付的不僅是代碼,還有基于不可變架構的運行環境。業務快速上云快速實現應用容器化部署,同時也可達到自動伸縮、按需部署、高可用、水平擴展、降低人力成本的效果。應用場景CCSE 產品特性1324特色功能n 支持多租戶、多集群統一管理n 支持應用無侵入集成監控、日志、服務網格、HPA、持久化存儲等基礎能力n 提供高可用、高性能的鏡像管理功能n
14、 提供豐富的PaaS組件模板,支持界面化一鍵部署到K8S集群簡單易用n 界面化一鍵創建K8S集群n 一站式部署和運維容器應用,深度集成Istio服務網格,真正實現開箱即用n 全面準確的監控指標、完善的監控告警體系彈性伸縮n 支持集群節點、工作負載的彈性伸縮n 支持手動伸縮和自動彈性伸縮n 支持組合多種彈性策略以應對業務高峰期的突發流量開放兼容n 提供全面標準的OpenAPI,支持CI/CD快速接入n 與社區Kubernetes最新版本保持緊密同步,完全兼容原生API和命令行n 支持對接第三方監控和日志系統,支持對接外部存儲56高效調度安全可靠n 集群控制面HA,集群內節點和應用支持多AZ,保障
15、業務高可用n 提供基于角色的細粒度權限控制(RBAC)n 支持自定義網絡安全隔離策略n 提供節點以及工作負載間的親和性/反親和調度n 支持對故障實例的秒級接管以及故障實例的自我修復n 整合平臺監控數據,動態分析,智能精細化資源調度,大幅提升資源利用率 以應用為中心結合DevOps幫助用戶快速開發、構建、部署和運維分布式應用,提供一站式容器服務為應用提供監控、日志、負載均衡、灰度/藍綠、HPA、持久化存儲等基礎能力提供高可用、高性能的鏡像服務,構建組件市場,提升應用容器化效率提供插件機制,可方便快速擴充CCSE平臺能力 資源管理支持多租戶、多集群統一管理,支持細粒度的權限管控Kubernetes
16、對底層的物理資源做集中管理與統一調度;產品模式對接PaaS云平臺,支持在PaaS門戶開通CCSE服務支持客戶在私有云環境獨立部署CCSE專有云、公有云、邊緣云計算CPU、GPU、FPGA網絡VPC、ENI、SLB存儲EBS、NAS、OSS專有/托管K8S集群Serverless K8S集群監控日志告警運維管理RBAC認證鑒權擴展插件管理AI/大數據框架CI/CD服務網格集群管理應用管理OpenAPIK8S Native API彈性伸縮安全合規混合云/多云云邊協同組件市場鏡像服務事件容器編排調度租戶管理企業應用創新應用CRMOA供應鏈AI區塊鏈IotCCSE-總體架構CCSE 與原生K8S的比對
17、對比項自服務CCSE自建K8S+docker集群 通過控制臺一鍵創建高可用集群。提供容器優化的OS鏡像,提供穩定測試和安全加固的Kuberntes和Docker版本。支持多集群管理。用戶手動部署集群并自行開發。用戶自行探索和開發。應用 支持灰度/藍綠發布。支持應用監控,應用彈性伸縮。用戶自行探索和開發。網絡 提供經過優化的高性能Calico網絡插件,性能優于普通網絡方案20%。支持容器訪問策略和容器帶寬限制。需要挑選社區網絡插件進行適配。用戶自行探索和開發。運維 支持K8S新版本一鍵升級,支持K8S集群自動添加節點。提供高性能日志采集Agent,支持10萬QPS。用戶自行探索和開發。企業應用開
18、發平臺(云道)上線持續集成工程資源申請統一PaaS平臺(云翼)IT智能運維平臺(云眼)CMDB計費CRMOSSSaaSPaaS、IaaS、NaaS北向接口南向接口統一門戶運維人員開發人員測試人員工程人員數據庫中間件CCSE翼容器小系統VM物理機/VMSaaS監控PaaS監控IaaS監控網絡監控SaaS維護PaaS維護IaaS維護申請網絡維護申請SaaS安防PaaS安防IaaS安防申請網絡安防申請監控中心操作中心安防中心DCOOS云橋合作伙伴合作伙伴開發應用1云道上開發測試發布等過程管理2應用通過編排發布上云3采集N/I/P/SaaS等北向接口數據4運維人員通過智能運維平臺進行監控維護5運維人員下達南向指令操控云上配置等6SaaS、統一PaaS平臺、云道、智能運維平臺能力開放到DCOOS7CCSE 在翼龍平臺產品線定位和上云體系中的作用中國電信云薦社區掃碼加入中國電信云薦社區,一起探索和實踐內外部上云!中國電信云薦社區,圍繞上云生態進行人才培養、知識體系梳理沉淀等運營工作,提供組件下載、有問有答、技術論壇、行業動態等多個功能模塊,為生態用戶提供高效的上云交流平臺。微信公眾號