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