k8s概述和架構


1 K8s基本介紹

  • kubernetes,簡稱k8s,是用8代替8個字符"ubernete"而成的縮寫。是一個開源的,用於管理雲平台中多個主機上的容器化的應用,kubernates的目標是讓部署容器化應用變得簡單而且高效 ,kubernates提供了應用部署、規划、更新和維護的機制。
  • 傳統的應用部署方式是通過插件或腳本來安裝的。這樣做的缺點是應用的運行、配置、管理和所有的生命周期和當前操作系統綁定在一起,這樣做並不利於應用的升級、更新或回滾等操作,當然也可以通過創建虛擬機的方式來實現某些功能,但是虛擬機非常重,並不利於可移植性。
  • 新的方式是通過部署容器方式實現,每個容器之間相互隔離,每個容器有自己的文件系統,容器之間進程不會相互影響,能區分計算資源。相對於虛擬機,容器能快速部署,由於容器和底層設施、機器文件系統解耦,所以它能在不同雲、不同版本操作系統間進行遷移。
  • 容器占用資源少、部署塊,每個應用可以被打包成一個容器鏡像,每個應用和容器間形成一對一的關系,也使得容器有更大的優勢,使用容器可以在build或release的階段,為應用創建容器鏡像,因為每個應用不需要和其余的應用堆棧組合,也不依賴於生產環境基礎結構,這使得從研發到測試、生產能提供一致環境。類似的,容器比虛擬機輕量、更“透明”,更便於監控和管理。
  • kubernetes是Google開源的一個容器編排引擎,它支持自動化部署、大規模可伸縮、應用容器化管理。在生產環境中部署一個應用程序時,通常要部署該應用的多個實例以便對應用請求進行負載均衡。
  • 在kubernetes中,我們可以創建多個容器,每個容器里面運行一個應用實例,然后通過內置的負載均衡策略,實現對這一組應用實例的管理、發現和訪問,而這些細節都不需要運維人員去進行復雜的手動配置和處理。
  • 總結:
    • k8s是Google開源的容器化集群管理系統。
    • 使用k8s進行容器化應用部署。
    • 使用k8s有利於應用擴展。
    • k8s的目標是讓部署容器化應用更加簡單和高效。

2 K8s的特性

2.1 概述

  • kubernetes是一個輕量的和可擴展的開源平台,用於管理容器化應用和服務。通過kubernetes能夠進行應用的自動化部署和擴縮容。在kubernetes中,會將組成應用的容器組合成一個邏輯單元以便管理和發現。
  • kubernetes積累了作為Google生產環境運行工作多年的經驗,並吸收了來自於社區的最佳想法和實踐。

2.2 k8的特性

  • 1️⃣自動裝箱:基於容器對應運行環境的資源配置要求,自動部署應用容器。
  • 2️⃣自我修復和自愈能力:
    • 當容器失敗的時候,會對容器進行重啟。
    • 當所部署的Node節點有問題時,會對容器進行重新部署和重新調度。
    • 當容器沒有通過監控檢查的時候,會關閉此容器直到容器正常運行時,才會對外提供服務。
  • 3️⃣水平擴展:通過簡單的命令、用戶UI界面或者基於CPU等資源的使用情況,對應用容器進行規模擴展或規模裁剪。
  • 4️⃣服務發現和負載均衡:用戶不需要額外的服務發現機制,就能夠基於k8s自身能力實現服務發現和負載均衡。
  • 5️⃣滾動更新:可以根據應用的變化,對應用容器運行的應用,進行一次性或批量式更新。
  • 6️⃣版本回退:可以根據應用部署情況,對應用容器運行的應用,進行歷史版本即時回退。
  • 7️⃣密鑰和配置管理:在不需要重新構建鏡像的情況下,可以部署、更新密鑰和應用配置,類似熱部署。
  • 8️⃣存儲編排:
    • 自動實現存儲系統掛載和應用,特別對有狀態的應用實現數據持久化非常重要。
    • 存儲系統可以來自本地目錄、網絡存儲(NFS、Gluster、Ceph等)以及公有雲存儲服務。
  • 9️⃣批處理:提供一次性任務、定時任務,滿足批量數據處理和分析的場景。

3 k8s的架構組件

K8s架構組件

  • k8s由Master(主控節點)和Node(工作節點)組成。
  • K8s的Master由API Server(集群的統一入口,以REST ful方式提供,存儲到etcd中)、Scheduler(做集群節點的調度:調度器根據算法選擇Node節點進行應用部署)、Controller Manager(處理集群中常規的后台任務,一個資源對應一個控制器)和etcd(存儲系統,用來保存集群中相關數據)組成。
  • k8s的Node由kubelte(Master派到Node節點的代表,負責維護容器的生命周期,同時也負責Volume(CVI)和網絡(CNI)的管理)、kube-proxy(提供網絡代理,負責為Service提供cluster內部的服務發現和負載均衡)和docker組成。

4 k8s核心概念

4.1 Pod

  • Pod是k8s中最小的部署單元。
  • Pod是一組容器的集合。
  • Pod中的容器是共享網絡的。
  • Pod的生命周期是短暫的。

4.2 Controller

  • Controller可以確保預期的Pod的副本數量。
  • Controller確保所有的Node運行同一個Pod。
  • 一次性任務和定時任務。
  • 無狀態應用部署。
  • 有狀態應用部署。

4.3 Service

  • 定義一組Pod的訪問規則。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM