0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Kubernetes是怎樣工作的?

jf_78858299 ? 來(lái)源:運(yùn)維漫談 ? 作者:運(yùn)維漫談 ? 2023-05-12 16:13 ? 次閱讀

什么是 Kubernetes?

Kubernetes 是一個(gè)可移植、可擴(kuò)展的開(kāi)源平臺(tái),用于管理容器化工作負(fù)載和服務(wù),有助于聲明式配置和自動(dòng)化,它擁有龐大且快速發(fā)展的生態(tài)系統(tǒng),Kubernetes 服務(wù)、支持和工具隨處可見(jiàn)。

您可以將運(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 作為縮寫(xiě)的結(jié)果來(lái)自計(jì)算“K”和“s”之間的八個(gè)字母,Google 于 2014 年開(kāi)源了 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)用程序的容器并確保沒(méi)有停機(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 名稱(chēng)或使用自己的 IP 地址公開(kāi)容器,如果容器的流量很高,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)用戶(hù)定義的健康檢查的容器,并且在它們準(zhǔn)備好提供服務(wù)之前不會(huì)向客戶(hù)端通告它們。
  • 秘密和配置管理 :Kubernetes 允許您存儲(chǔ)和管理敏感信息,例如密碼、OAuth 令牌和 SSH 密鑰,可以部署和更新機(jī)密和應(yīng)用程序配置,而無(wú)需重建容器映像,也無(wú)需在堆棧配置中公開(kāi)機(jī)密。

Kubernetes 如何工作?

隨著應(yīng)用程序擴(kuò)展到跨多個(gè)服務(wù)器部署的多個(gè)容器,操作它們變得更加復(fù)雜,為了管理這種復(fù)雜性,Kubernetes 提供了一個(gè)開(kāi)源 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ù)。

圖片

  1. 在同一個(gè) Kubernetes 集群中一起快速迭代、測(cè)試和調(diào)試應(yīng)用程序的不同部分。
  2. 將代碼合并并檢查到 GitHub 存儲(chǔ)庫(kù)中以進(jìn)行持續(xù)集成,然后,運(yùn)行自動(dòng)化構(gòu)建和測(cè)試作為持續(xù)交付的一部分。
  3. 驗(yàn)證容器鏡像的來(lái)源和完整性,圖像被隔離,直到它們通過(guò)掃描。
  4. 使用 Terraform 等工具配置 Kubernetes 集群。Terraform 安裝的 Helm 圖表定義了應(yīng)用程序資源和配置的所需狀態(tài)。
  5. 實(shí)施策略來(lái)管理對(duì) Kubernetes 集群的部署。
  6. 發(fā)布管道自動(dòng)對(duì)每個(gè)代碼執(zhí)行預(yù)定義的部署策略。
  7. 向 CI/CD 管道添加策略審計(jì)和自動(dòng)修復(fù),例如,只有發(fā)布管道有權(quán)在您的 Kubernetes 環(huán)境中創(chuàng)建新的 Pod。
  8. 啟用應(yīng)用遙測(cè)、容器運(yùn)行狀況監(jiān)控和實(shí)時(shí)日志分析。
  9. 用洞察力解決問(wèn)題并為下一個(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 是很常見(jiàn)的,但是當(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)用程序性能的一部分。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11161

    瀏覽量

    208459
  • 容器
    +關(guān)注

    關(guān)注

    0

    文章

    490

    瀏覽量

    22013
  • 開(kāi)源平臺(tái)
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    6831
  • kubernetes
    +關(guān)注

    關(guān)注

    0

    文章

    223

    瀏覽量

    8675
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Kubernetes的Device Plugin設(shè)計(jì)解讀

    工作節(jié)點(diǎn),到設(shè)備與容器的實(shí)際綁定。首先思考的第一個(gè)問(wèn)題是為什么進(jìn)入alpha.kubernetes.io/nvidia-gpu主干一年之久的GPU功能徹底移除?OutOfTree
    發(fā)表于 03-12 16:23

    理解和創(chuàng)建Kubernetes對(duì)象

    Kubernetes對(duì)象總結(jié)
    發(fā)表于 04-11 15:14

    Kubernetes經(jīng)驗(yàn)總結(jié)

    Kubernetes學(xué)習(xí)筆記——24 允許外部訪問(wèn)
    發(fā)表于 06-18 12:10

    kubernetes集群配置

    基于v1104版本手動(dòng)搭建高可用kubernetes 集群
    發(fā)表于 08-19 08:07

    淺析Kubernetes

    【k8s】Kubernetes基礎(chǔ)概念
    發(fā)表于 09-27 09:11

    不吹不黑,今天我們來(lái)聊一聊 Kubernetes 落地的三種方式

    云原生的方向發(fā)展演進(jìn)。不管怎樣,對(duì)于用戶(hù)而言,改變以往虛擬機(jī)的部署和管理方式以及服務(wù)的治理策略是必要的。不得不說(shuō),All in Kubernetes 是一個(gè)趨勢(shì),CRD 自 Kubernetes 1.7
    發(fā)表于 10-12 16:07

    kubernetes部署與應(yīng)用

    kubernetes運(yùn)維筆記
    發(fā)表于 10-25 13:08

    kubernetes系統(tǒng)基本概念

    一文帶你看透kubernetes 容器編排系統(tǒng)
    發(fā)表于 11-05 08:26

    Kubernetes Dashboard實(shí)踐學(xué)習(xí)

    關(guān)于Kubernetes Dashboard的實(shí)踐學(xué)習(xí)
    發(fā)表于 04-10 14:09

    Kubernetes API詳解

    摘要:Kubernetes是Google開(kāi)源的容器集群管理系統(tǒng)。它構(gòu)建Ddocker技術(shù)之上,為容器化的應(yīng)用提供資源調(diào)度、部署運(yùn)行、服務(wù)發(fā)現(xiàn)、擴(kuò)容縮容等整一套功能,本文節(jié)選自龔正
    發(fā)表于 10-12 16:19 ?0次下載
    <b class='flag-5'>Kubernetes</b> API詳解

    如何創(chuàng)建Kubernetes jobs和cronjobs?

    Kubernetes jobs主要是針對(duì)短時(shí)和批量的工作負(fù)載。
    的頭像 發(fā)表于 06-15 14:04 ?1603次閱讀
    如何創(chuàng)建<b class='flag-5'>Kubernetes</b> jobs和cronjobs?

    KUBERNETES工作原理是什么

    Kubernetes 提供了一個(gè)框架,用于部署、管理、擴(kuò)展和切換分布式容器,這些容器是隨依賴(lài)項(xiàng)和配置打包的微服務(wù)。
    的頭像 發(fā)表于 06-10 13:19 ?1647次閱讀

    Kubernetes Pod如何獨(dú)立工作

    在學(xué)習(xí) Kubernetes 網(wǎng)絡(luò)模型的過(guò)程中,了解各種網(wǎng)絡(luò)組件的作用以及如何交互非常重要。本文就介紹了各種網(wǎng)絡(luò)組件在 Kubernetes 集群中是如何交互的,以及如何幫助每個(gè) Pod 都能獲取 IP 地址。
    的頭像 發(fā)表于 05-16 14:29 ?574次閱讀
    <b class='flag-5'>Kubernetes</b> Pod如何獨(dú)立<b class='flag-5'>工作</b>

    Awesome 工具如何更好地管理Kubernetes

    在 DevOps 生態(tài)系統(tǒng)中,擁有出色的 DevOps 工具來(lái)減輕人為操作非常重要。每個(gè) DevOps 階段都可以使用大量的 DevOps 工具。 如果您在 DevOps 領(lǐng)域中工作并在容器中運(yùn)行
    的頭像 發(fā)表于 06-25 16:12 ?576次閱讀
    Awesome 工具如何更好地管理<b class='flag-5'>Kubernetes</b>

    Commvault:護(hù)航Kubernetes,不止Kubernetes

    Kubernetes已經(jīng)不再是只存在于路線圖中的未來(lái)產(chǎn)品。事實(shí)上,幾乎所有(94%)已經(jīng)采用容器的企業(yè)都在使用Kubernetes,大多數(shù)(86%)企業(yè)甚至認(rèn)為它對(duì)他們的運(yùn)營(yíng)至關(guān)重要。這并不令人意外,Kubernetes正在幫助
    的頭像 發(fā)表于 07-07 14:42 ?493次閱讀