Kubernetes虛擬化與云計算
Kubernetes虛擬化 (在希臘語意為“舵手”或“駕駛員”)由Joe Beda、Brendan Burns和Craig McLuckie創(chuàng)立,并由其他谷歌工程師,包括Brian Grant和Tim Hockin等進(jìn)行加盟創(chuàng)作,并由谷歌在2014年首次對外宣布 。該系統(tǒng)的開發(fā)和設(shè)計都深受谷歌的Borg系統(tǒng)[的影響,其許多頂級貢獻(xiàn)者之前也是Borg系統(tǒng)的開發(fā)者。在谷歌內(nèi)部,Kubernetes的原始代號曾經(jīng)是Seven,即星際迷航中的Borg(博格人)。Kubernetes標(biāo)識中舵輪有七個輪輻就是對該項目代號的致意。
Kubernetes v1.0于2015年7月21日發(fā)布。隨著v1.0版本發(fā)布,谷歌與Linux 基金會合作組建了Cloud Native Computing Foundation(CNCF)并將Kubernetes作為種子技術(shù)來提供。
Rancher Labs在其Rancher容器管理平臺中包含了Kubernetes的發(fā)布版。[Kubernetes也在很多其他公司的產(chǎn)品中被使用,例如Red Hat的OpenShift,CoreOS的Tectonic, IBM的IBM私有云產(chǎn)品,精靈云的EcOS,以及 VMware的PKS等等。
而現(xiàn)今信息界常見的縮寫手法“K8s”則是將“ubernete”八個字母縮寫為“8”而來。
-摘錄?
一.系統(tǒng)虛擬化云計算概述
VMware Cloud是全球使用率最高的云計算操作系統(tǒng),Kubernetes 是一個可移植的、可擴(kuò)展的開源平臺,用于管理容器化的工作負(fù)載和服務(wù),可促進(jìn)聲明式配置和自動化。 Kubernetes 擁有一個龐大且快速增長的生態(tài)系統(tǒng)。Kubernetes 的服務(wù)、支持和工具廣泛可用。VMware Kubernetes為基于容器的工作負(fù)載提供了出色的自動化應(yīng)用程序部署平臺。但是應(yīng)用程序服務(wù)(例如流量管理,群集內(nèi)以及跨群集/區(qū)域之間的負(fù)載均衡)、服務(wù)發(fā)現(xiàn)、監(jiān)視/分析和應(yīng)用程序安全性,對于現(xiàn)代應(yīng)用程序基礎(chǔ)結(jié)構(gòu)至關(guān)重要。企業(yè)要求可擴(kuò)展的、經(jīng)過現(xiàn)實世界測試且強(qiáng)大穩(wěn)定的服務(wù)架構(gòu),以便在 Kubernetes集群中部署可用于生產(chǎn)環(huán)境的微服務(wù)應(yīng)用程序。簡化的云計算基礎(chǔ)架構(gòu),使 IT 組織能夠利用內(nèi)部和外部資源,安全和低風(fēng)險地提供新一代靈活可靠的 IT 服務(wù)。VMware Cloud通過提供新的公有云和私有云功能延展VMware的混合云戰(zhàn)略,能夠在通用運(yùn)維環(huán)境下,實現(xiàn)跨云環(huán)境和設(shè)備運(yùn)行、管理、連接和保護(hù)應(yīng)用。
二. 虛擬化部署架構(gòu)組成
Kubernetes虛擬化 是從 Google 為搭配「Borg」平臺而使用的程式碼所演變而來,原本是供大規(guī)模管理 Google 旗下資料中心之用。AWS 在推出 EC2 平臺之際,讓彈性網(wǎng)路伺服器架構(gòu)一并亮相。Kubernetes 讓公司得以使用開放式原始碼,協(xié)調(diào) EC2 等容器。Google、AWS、Azure 與其他主要公有云主機(jī),都提供適用于云端網(wǎng)路伺服器協(xié)調(diào)作業(yè)的 Kubernetes 支援。客戶可以使用 Kubernetes 來外包整個資料中心、網(wǎng)路/行動應(yīng)用程式、軟體即服務(wù)支援、云端網(wǎng)路代管或高效能運(yùn)算。Kubernetes (??s寫為「K8s」) 隸屬于 Cloud Native Computing Foundation,旨在支援云端資料中心管理軟體的共用網(wǎng)路標(biāo)準(zhǔn)開發(fā)作業(yè)。Docker 為 Kubernetes 最常使用的容器虛擬化標(biāo)準(zhǔn),可為程式設(shè)計團(tuán)隊提供多項整合式軟體生命周期開發(fā)工具。RancherOS、CoreOS 與 Alpine Linux,都是專為容器使用所設(shè)計的熱門作業(yè)系統(tǒng)。容器虛擬化不同于使用虛擬化管理程序的虛擬機(jī)或 VPS 工具,所需的生產(chǎn)環(huán)境作業(yè)系統(tǒng)規(guī)模通常較小。
三. Kubernetes容器的優(yōu)勢
Kubernetes 的主要優(yōu)勢,在于可在生產(chǎn)環(huán)境中操作自動化、彈性的網(wǎng)路伺服器平臺,且不須受限于 AWS 的 EC2 服務(wù)。Kubernetes 能執(zhí)行絕大多數(shù)的公有云代管服務(wù),而且所有主流公司都為其提供具競爭力的價格。Kubernetes 可讓企業(yè)將資料中心完全委外經(jīng)營。此外,Kubernetes 也能用來將生產(chǎn)環(huán)境的網(wǎng)路與行動應(yīng)用程式,擴(kuò)充至最大等級的網(wǎng)路流量。Kubernetes 可讓所有公司以具競爭力的資料中心價格取得硬體資源,以操作自有軟體程式碼,同時享有媲美大型公司的延展性。
- 可移動: 公有云、私有云、混合云、多態(tài)云
- 可擴(kuò)展: 模塊化、插件化、可掛載、可組合
- 自修復(fù): 自動部署、自動重啟、自動復(fù)制、自動伸縮
- Kubernetes 是開源系統(tǒng),可以自由地部署在企業(yè)內(nèi)部,私有云、混合云或公有云,讓您輕松地做出合適的選擇。
- 快速部署應(yīng)用
- 快速擴(kuò)展應(yīng)用
- 無縫對接新的應(yīng)用功能
- 節(jié)省資源,優(yōu)化硬件資源的使用
四. Kubernetes與容器
Kubernetes 為開放式原始碼容器協(xié)調(diào)作業(yè)平臺。Docker 為搭配 Kubernetes 使用的主要容器虛擬化標(biāo)準(zhǔn)。其他的彈性網(wǎng)路伺服器協(xié)調(diào)作業(yè)系統(tǒng),則包括 Docker Swarm、CoreOS Tectonic 與 Mesosphere。Intel 也與 Kata 聯(lián)手推出一款與容器標(biāo)準(zhǔn)來與 Kubernetes 較勁,市面上還有許多 Linux 版本的容器。在軟體產(chǎn)品的容器虛擬化領(lǐng)域中,Docker 享有最高市占率。Docker 為專精于容器虛擬化的軟體開發(fā)公司,相較之下,Kubernetes 則屬受編碼人員社群支援的開放式原始碼專案,社群成員包括各大主要 IT 公司的專業(yè)程式設(shè)計人員。
Kubernetes虛擬化 - 特性
自動化上線和回滾
- Kubernetes 會分步驟地將針對應(yīng)用或其配置的更改上線,同時監(jiān)視應(yīng)用程序運(yùn)行狀況以確保你不會同時終止所有實例。如果出現(xiàn)問題,Kubernetes 會為你回滾所作更改。你應(yīng)該充分利用不斷成長的部署方案生態(tài)系統(tǒng)。
服務(wù)發(fā)現(xiàn)與負(fù)載均衡
- 無需修改你的應(yīng)用程序即可使用陌生的服務(wù)發(fā)現(xiàn)機(jī)制。Kubernetes 為容器提供了自己的 IP 地址和一個 DNS 名稱,并且可以在它們之間實現(xiàn)負(fù)載均衡。
服務(wù)拓?fù)洌⊿ervice Topology)
- 基于集群拓?fù)涞姆?wù)流量路由。
存儲編排
- 自動掛載所選存儲系統(tǒng),包括本地存儲、諸如 GCP 或 AWS 之類公有云提供商所提供的存儲或者諸如 NFS、iSCSI、Gluster、Ceph、Cinder 或 Flocker 這類網(wǎng)絡(luò)存儲系統(tǒng)。
Secret 和配置管理
- 部署和更新 Secrets 和應(yīng)用程序的配置而不必重新構(gòu)建容器鏡像,且 不必將軟件堆棧配置中的秘密信息暴露出來。
自動裝箱
- 根據(jù)資源需求和其他約束自動放置容器,同時避免影響可用性。將關(guān)鍵性工作負(fù)載和盡力而為性質(zhì)的服務(wù)工作負(fù)載進(jìn)行混合放置,以提高資源利用率并節(jié)省更多資源。
批量執(zhí)行
- 除了服務(wù)之外,Kubernetes 還可以管理你的批處理和 CI 工作負(fù)載,在期望時替換掉失效的容器。
IPv4/IPv6 雙協(xié)議棧
- 為 Pod 和 Service 分配 IPv4 和 IPv6 地址
水平擴(kuò)縮
- 使用一個簡單的命令、一個 UI 或基于 CPU 使用情況自動對應(yīng)用程序進(jìn)行擴(kuò)縮。
自我修復(fù)
- 重新啟動失敗的容器,在節(jié)點死亡時替換并重新調(diào)度容器,殺死不響應(yīng)用戶定義的健康檢查的容器,并且在它們準(zhǔn)備好服務(wù)之前不會將它們公布給客戶端。
Kubernetes服務(wù)本質(zhì)是一組協(xié)同工作的pod,類同多層架構(gòu)應(yīng)用中的一層。構(gòu)成服務(wù)的pod組通過標(biāo)簽選擇器來定義。Kubernetes通過給服務(wù)分配靜態(tài)IP地址和域名來提供服務(wù)發(fā)現(xiàn)機(jī)制,并且以輪循調(diào)度的方式將流量負(fù)載均衡到能與選擇器匹配的pod的IP地址的網(wǎng)絡(luò)連接上(即使是故障導(dǎo)致pod從一臺機(jī)器移動到另一臺機(jī)器)。 默認(rèn)情況下,服務(wù)任務(wù)會暴露在集群中(例如,多個后端pod可能被分組成一個服務(wù),前端pod的請求在它們之間負(fù)載平衡);除此以外,服務(wù)任務(wù)也可以暴露在集群外部(例如,從客戶端訪問前端pod)
而現(xiàn)今信息界常見的縮寫手法“K8s”則是將“ubernete”八個字母縮寫為“8”而來。
煜企智能在Kubernetes K8s部署上面有著豐富的經(jīng)驗,工程師都具備豐富的Kubernetes的部署經(jīng)驗,在基礎(chǔ)網(wǎng)絡(luò)建設(shè)中我們建議采用模塊化的結(jié)構(gòu),模塊化結(jié)構(gòu)方式有兩種主要優(yōu)勢。首先,它允許體系結(jié)構(gòu)實現(xiàn)網(wǎng)絡(luò)各功能塊間的安全關(guān)系,其次,它讓設(shè)計者可逐個模塊地評估和實施安全性,而非試圖在一個階段就完成整個體系結(jié)構(gòu)。模塊化設(shè)計還可以簡化日常維護(hù)管理流程,從而降低維護(hù)和管理的風(fēng)險。需求解決方案的要點:1、鏈路負(fù)載均衡(多鏈路控制器)2、安全區(qū)域劃分和隔離(WAF、防火墻)3、日志收集和分析(統(tǒng)一日志審計平臺)4、各類應(yīng)用的安全防護(hù)(WEB應(yīng)用安全網(wǎng)關(guān)、數(shù)據(jù)庫日志審計)5、檢測和防止網(wǎng)絡(luò)攻擊及黑客入侵(入侵檢測(IDS)入侵防御系統(tǒng)(IPS))
相關(guān)方案:
煜企智能在 Kubernetes和 虛擬化、基礎(chǔ)設(shè)施建設(shè)、弱電系統(tǒng)、系統(tǒng)集成中擁有豐富的案例,您有任何想法和需求,隨時致電煜企智能獲得咨詢和支持。
微信掃碼 | 加入我們