什么是 Kubernetes?
Kubernetes 是一個(gè)可移植、可擴(kuò)展的開源平臺(tái),用于管理容器化工作負(fù)載和服務(wù),有助于聲明式配置和自動(dòng)化,它擁有龐大且快速發(fā)展的生態(tài)系統(tǒng),Kubernetes 服務(wù)、支持和工具隨處可見。
您可以將運(yùn)行 Linux? 容器的主機(jī)組集群在一起,Kubernetes 可幫助您輕松高效地管理這些集群。
Kubernetes 集群 可以跨越本地、公共、 私有或 混合云的主機(jī),因此,Kubernetes 是托管 需要快速擴(kuò)展的云原生應(yīng)用程序的理想平臺(tái) ,例如通過(guò)Apache Kafka的實(shí)時(shí)數(shù)據(jù)流 。
Kubernetes 的名字來(lái)源于希臘語(yǔ),意思是舵手或飛行員,K8s 作為縮寫的結(jié)果來(lái)自計(jì)算“K”和“s”之間的八個(gè)字母,Google 于 2014 年開源了 Kubernetes 項(xiàng)目。Kubernetes 結(jié)合了 Google 超過(guò) 15 年的大規(guī)模運(yùn)行生產(chǎn)工作負(fù)載的經(jīng)驗(yàn)以及來(lái)自社區(qū)的最佳創(chuàng)意和實(shí)踐。
為什么我們需要 Kubernetes?
保持容器化應(yīng)用程序的啟動(dòng)和運(yùn)行可能很復(fù)雜,因?yàn)樗鼈兺ǔI婕安渴鹪诓煌瑱C(jī)器上的許多容器,Kubernetes 提供了一種調(diào)度和部署這些容器的方法,并將它們擴(kuò)展到您想要的狀態(tài)并管理它們的生命周期,使用 Kubernetes 以可移植、可擴(kuò)展和可擴(kuò)展的方式實(shí)現(xiàn)基于容器的應(yīng)用程序。
Kubernetes 的好處?
容器是捆綁和運(yùn)行應(yīng)用程序的好方法。在生產(chǎn)環(huán)境中,您需要管理運(yùn)行應(yīng)用程序的容器并確保沒有停機(jī),例如,如果一個(gè)容器宕機(jī),另一個(gè)容器需要啟動(dòng),如果這種行為由系統(tǒng)處理會(huì)不會(huì)更容易?
Kubernetes 提供了一個(gè)彈性運(yùn)行分布式系統(tǒng)的框架,負(fù)責(zé)應(yīng)用程序的擴(kuò)展和故障轉(zhuǎn)移,提供部署模式等等,例如,Kubernetes 可以輕松管理系統(tǒng)的金絲雀部署。
Kubernetes 提供:
- 服務(wù)發(fā)現(xiàn)和負(fù)載平衡 :Kubernetes 可以使用 DNS 名稱或使用自己的 IP 地址公開容器,如果容器的流量很高,Kubernetes 能夠負(fù)載均衡和分配網(wǎng)絡(luò)流量,從而使部署穩(wěn)定。
- 存儲(chǔ)編排 :Kubernetes 允許您自動(dòng)掛載您選擇的存儲(chǔ)系統(tǒng),例如本地存儲(chǔ)、公共云提供商等。
- 自動(dòng)推出和回滾 :可以使用 Kubernetes 描述已部署容器的所需狀態(tài),它可以以受控速率將實(shí)際狀態(tài)更改為所需狀態(tài),例如,您可以自動(dòng)化 Kubernetes 為您的部署創(chuàng)建新容器、刪除現(xiàn)有容器并將其所有資源用于新容器。
- 自動(dòng)裝箱 :您為 Kubernetes 提供了一組節(jié)點(diǎn),可用于運(yùn)行容器化任務(wù),您告訴 Kubernetes 每個(gè)容器需要多少 CPU 和內(nèi)存 (RAM),Kubernetes 可以將容器安裝到您的節(jié)點(diǎn)上,以充分利用您的資源。
- 自我修復(fù) :Kubernetes 會(huì)重啟失敗的容器、替換容器、殺死不響應(yīng)用戶定義的健康檢查的容器,并且在它們準(zhǔn)備好提供服務(wù)之前不會(huì)向客戶端通告它們。
- 秘密和配置管理 :Kubernetes 允許您存儲(chǔ)和管理敏感信息,例如密碼、OAuth 令牌和 SSH 密鑰,可以部署和更新機(jī)密和應(yīng)用程序配置,而無(wú)需重建容器映像,也無(wú)需在堆棧配置中公開機(jī)密。
Kubernetes 如何工作?
隨著應(yīng)用程序擴(kuò)展到跨多個(gè)服務(wù)器部署的多個(gè)容器,操作它們變得更加復(fù)雜,為了管理這種復(fù)雜性,Kubernetes 提供了一個(gè)開源 API,用于控制這些容器的運(yùn)行方式和位置。
Kubernetes 編排虛擬機(jī)集群并根據(jù)它們的可用計(jì)算資源和每個(gè)容器的資源要求安排容器在這些虛擬機(jī)上運(yùn)行,容器被分組為 pod ,這是 Kubernetes 的基本操作單元,這些 pod 可以擴(kuò)展到您想要的狀態(tài)。
Kubernetes 還自動(dòng)管理服務(wù)發(fā)現(xiàn)、整合負(fù)載平衡、跟蹤資源分配并根據(jù)計(jì)算利用率進(jìn)行擴(kuò)展,而且,它會(huì)檢查單個(gè)資源的健康狀況,并通過(guò)自動(dòng)重啟或復(fù)制容器使應(yīng)用程序能夠自我修復(fù)。
- 在同一個(gè) Kubernetes 集群中一起快速迭代、測(cè)試和調(diào)試應(yīng)用程序的不同部分。
- 將代碼合并并檢查到 GitHub 存儲(chǔ)庫(kù)中以進(jìn)行持續(xù)集成,然后,運(yùn)行自動(dòng)化構(gòu)建和測(cè)試作為持續(xù)交付的一部分。
- 驗(yàn)證容器鏡像的來(lái)源和完整性,圖像被隔離,直到它們通過(guò)掃描。
- 使用 Terraform 等工具配置 Kubernetes 集群。Terraform 安裝的 Helm 圖表定義了應(yīng)用程序資源和配置的所需狀態(tài)。
- 實(shí)施策略來(lái)管理對(duì) Kubernetes 集群的部署。
- 發(fā)布管道自動(dòng)對(duì)每個(gè)代碼執(zhí)行預(yù)定義的部署策略。
- 向 CI/CD 管道添加策略審計(jì)和自動(dòng)修復(fù),例如,只有發(fā)布管道有權(quán)在您的 Kubernetes 環(huán)境中創(chuàng)建新的 Pod。
- 啟用應(yīng)用遙測(cè)、容器運(yùn)行狀況監(jiān)控和實(shí)時(shí)日志分析。
- 用洞察力解決問題并為下一個(gè)沖刺制定計(jì)劃。
什么是POD?
Kubernetes pod 是一組 容器 ,是 Kubernetes 管理的 最小單元 ,Pod 有一個(gè) IP 地址,應(yīng)用于 Pod 內(nèi)的每個(gè)容器。Pod 中的容器共享相同的資源,例如內(nèi)存和存儲(chǔ),這允許將 pod 內(nèi)的各個(gè) Linux 容器作為一個(gè)應(yīng)用程序共同處理,就好像所有容器化進(jìn)程在更傳統(tǒng)的工作負(fù)載中在同一臺(tái)主機(jī)上一起運(yùn)行一樣。
當(dāng)應(yīng)用程序或服務(wù)是需要運(yùn)行的單個(gè)進(jìn)程時(shí),只有一個(gè)容器的 pod 是很常見的,但是當(dāng)事情變得更復(fù)雜,多個(gè)進(jìn)程需要使用相同的共享數(shù)據(jù)卷協(xié)同工作才能正確運(yùn)行時(shí),
例如,如果您正在使用創(chuàng)建 GIF 的圖像處理服務(wù),一個(gè) pod 可能有多個(gè)容器協(xié)同工作來(lái)調(diào)整圖像大小,主容器可能正在運(yùn)行接收請(qǐng)求的非阻塞微服務(wù)應(yīng)用程序,然后一個(gè)或多個(gè)輔助(side-car)容器運(yùn)行批處理后臺(tái)進(jìn)程或清理存儲(chǔ)卷中的數(shù)據(jù)工件,作為管理整體應(yīng)用程序性能的一部分。
-
Linux
+關(guān)注
關(guān)注
87文章
11350瀏覽量
210460 -
容器
+關(guān)注
關(guān)注
0文章
499瀏覽量
22128 -
開源平臺(tái)
+關(guān)注
關(guān)注
0文章
8瀏覽量
6886 -
kubernetes
+關(guān)注
關(guān)注
0文章
227瀏覽量
8757
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論