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

Kubernetes的Device Plugin設(shè)計解讀
不吹不黑,今天我們來聊一聊 Kubernetes 落地的三種方式
Kubernetes API詳解

KUBERNETES的工作原理是什么
Kubernetes Pod如何獨立工作

Awesome 工具如何更好地管理Kubernetes

評論