云原生必備知識——kubernetes和Karmada【與云原生的故事】
前言
本文主要介紹的內(nèi)容有:
? kubernetes簡介
? kubernetes整體架構(gòu)及工作原理
? Karmada簡介
? Karmada系統(tǒng)架構(gòu)及工作原理
一、kubernetes誕生背景
Kubernetes是一個大規(guī)模容器集群管理工具,它脫胎于谷歌Borg集群管理器。為了簡便的稱呼Kubernetes,我們也會將它叫做K8s。2014年6月,谷歌云計算專家Eric Brewer在舊金山的發(fā)布會為這款新的開源工具揭牌,它的名字Kubernetes在希臘語中意思是領(lǐng)航員,這個名字與它在容器集群管理中的作用吻合,即負(fù)擔(dān)著全局調(diào)度和運(yùn)行監(jiān)控的職責(zé)。
k8s是為容器服務(wù)而生的一個可移植容器的編排管理工具,它推動了微服務(wù)技術(shù)的落地,協(xié)助大量開發(fā)者進(jìn)行云服務(wù)應(yīng)用的部署。在服務(wù)發(fā)現(xiàn)與調(diào)度,服務(wù)監(jiān)控,橫向擴(kuò)容服務(wù)發(fā)現(xiàn)與負(fù)載均衡、容器自動裝箱4、存儲編排、自動容器恢復(fù)、自動發(fā)布與回滾、配置與密文管理、水平伸縮等方面都發(fā)揮了不錯的作用。
二、kubernetes總體架構(gòu)
Kubernetes在架構(gòu)方面主要分為5層,包括生態(tài)系統(tǒng),接口層,治理層以及應(yīng)用層,內(nèi)核層。如下圖所示,下圖最底層主要是一些接口,包括,運(yùn)行時接口等相關(guān)信息。
生態(tài)系統(tǒng):主要分為兩部分的集群管理調(diào)度,包括Kubernetes外部的日志,監(jiān)控以及CICD等方面,同時也包括Kubernetes內(nèi)部的CRI,鏡像倉庫管理方面的調(diào)度。
接口層:kubectl命令行工具、客戶端SDK以及集群聯(lián)邦
治理層:系統(tǒng)度量(如基礎(chǔ)設(shè)施、容器和網(wǎng)絡(luò)的度量),自動化(如自動擴(kuò)展、動態(tài)Provision等)
應(yīng)用層:部署(無狀態(tài)應(yīng)用、有狀態(tài)應(yīng)用、批處理任務(wù)、集群應(yīng)用等)和路由(服務(wù)發(fā)現(xiàn)、DNS解析等)
內(nèi)核層:核心層主要包括API和執(zhí)行環(huán)境,能夠?qū)ν馓峁゛pi,幫助構(gòu)建應(yīng)用,對內(nèi)提供插件式應(yīng)用執(zhí)行環(huán)境。
三、Karmada簡介
kubernetes是一個基于容器技術(shù) 的分布式架構(gòu)解決方案,在Docker技術(shù)的基礎(chǔ)上,為容器化的應(yīng)用提供部署運(yùn)行、資源調(diào)度、服務(wù)發(fā)現(xiàn)和動態(tài)伸縮等方案,提高了大規(guī)模容器集群管理的便捷性。但是在云原生快速發(fā)展的時代,越來越多的云廠商相關(guān)的集群托管服務(wù),同時各大互聯(lián)網(wǎng)公司也在自主籌建自己的集群。在這樣的一個背景下,假設(shè)一家新興互聯(lián)網(wǎng)公司要將它的不同應(yīng)用分別部署在不同的云廠商相關(guān)的集群,但是由于各個集群之間,有api以及不同的集群體系結(jié)構(gòu),那么如何讓部署到不同集群的應(yīng)用能夠無障礙的交流,調(diào)用,就成為了當(dāng)下云原生的一個重要課題。
為了解決這個問題,華為云通過市場調(diào)研,依托多年的出色云服務(wù)供應(yīng)能力,創(chuàng)造性的提出了k8s多集群分發(fā)方案karmada。
kubernetes已經(jīng)是容器編排的業(yè)界標(biāo)準(zhǔn),業(yè)界的大部分集群都是根據(jù)k8s起步的,所以跨集群部署,實(shí)質(zhì)上就是完成k8s多集群分發(fā)的過程。而karmada主要解決的是多集群網(wǎng)絡(luò)管理,集群運(yùn)維以及對象分發(fā)等多集群問題。
四、Karmada系統(tǒng)架構(gòu)
Karmada 是 CNCF 的云原生項目,主要的能力是納管多個 Kubernetes 集群,以及基于原生的 Kubernetes 的資源對象,將其下發(fā)到多個集群。那么Karmada 究竟是如何完成多云應(yīng)用能夠無障礙跨云跨集群運(yùn)行呢?
這就要從Karmada系統(tǒng)架構(gòu)說起。
Karmada控制面板由3部分組成,分別是Karmada API Server , Karmada?Controller Manager,Karmada Scheduler。其中ETCD 存儲 karmada API 對象,API 服務(wù)器作為 REST 端點(diǎn)以及Karmada 控制器管理器將根據(jù)用戶創(chuàng)建的 API 對象執(zhí)行操作。Karmada?Controller Manager運(yùn)行各種控制器,幫助監(jiān)控以及和不同的基礎(chǔ)集群API建立對話,創(chuàng)建常規(guī)的 Kubernetes 資源。
具體的Karmada介紹可以參考官方文檔:
https://gitee.com/yangqingchun1128/karmada/blob/master/README.md。
Karmada具有許多優(yōu)點(diǎn),第一,完全兼容k8s的API。這就不需要開發(fā)者再從頭開始學(xué)習(xí)Karmada與k8s相關(guān)的API,可以更多的關(guān)心應(yīng)用的細(xì)節(jié),而不需要過多關(guān)注Karmada進(jìn)行跨集群的管理,減少了開發(fā)人員的學(xué)習(xí)成本。第二、避免供應(yīng)商鎖定,由于眾多云編排管理器都基于k8s標(biāo)準(zhǔn),以及Karmada開發(fā)過程中也關(guān)注到了主流的云廠商的集群,所以基本支持主流的云廠商的集群。第三、開箱即用。內(nèi)置針對不同場景的策略集,支持跨集群應(yīng)用程序在多集群上的自動擴(kuò)展、故障轉(zhuǎn)移和負(fù)載均衡。
五、總結(jié)
在后疫情時代,云上辦公,云上開發(fā),云上部署成為了時代的主流,互聯(lián)網(wǎng)中小公司更傾向于將應(yīng)用部署到各大云廠商的云集群上,將服務(wù)器運(yùn)營方面的問題交給專業(yè)的云廠商專家來完成。讓中小公司更加專注于產(chǎn)品的本身。企業(yè)選擇與不同的云廠商合作,發(fā)揮各大云廠商的長處,讓自身應(yīng)用得到最大化的發(fā)展是當(dāng)前明智的選擇。擁抱k8s以及華為云打造的Karmada,將會為更多開發(fā)者上云的不二選擇。期待越來越多的企業(yè),攜手華為云Karmada,實(shí)現(xiàn)企業(yè),華為云及用戶的共贏。
【與云原生的故事】有獎?wù)魑幕馃徇M(jìn)行中:https://bbs.huaweicloud.com/blogs/345260
云端實(shí)踐 云原生 Kubernetes
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。