kubernetes (1)基本概念
1. 問題
1.1 傳統的應用部署方式
通過插件或腳本來安裝應用。這樣做的缺點:
- 應用的運行、配置、管理、所有生存周期將與當前操作系統綁定,這樣做并不利于應用的升級更新/回滾等操作
- 各個組織機構在物理服務器上運行應用程序。無法為物理服務器中的應用程序定義資源邊界,這會導致資源分配問題。
1.2 虛擬化部署時代
-
虛擬機非常重,并不利于可移植性。
-
虛擬化技術能夠更好地利用物理服務器上的資源,并且因為可輕松地添加或更新應用程序 而可以實現更好的可伸縮性,降低硬件成本等等。每個 VM 是一臺完整的計算機,在虛擬化硬件之上運行所有組件,包括其自己的操作系統。
1.3 容器部署時代:
容器類似于 VM,但是它們具有被放寬的隔離屬性,可以在應用程序之間共享操作系統(OS)。 因此,容器被認為是輕量級的。
2. Kubernetes(k8s)
Kubernetes的目標是讓部署容器化的應用簡單并且高效(powerful),Kubernetes提供了應用部署,規劃,更新,維護的一種機制
容器與 VM 類似,具有自己的文件系統、CPU、內存、進程空間等。 由于它們與基礎架構分離,因此可以跨云和 OS 發行版本進行移植。
- 開源
- 通過部署容器方式實現,每個容器之間互相隔離,每個容器有自己的文件系統 ,容器之間進程不會相互影響,能區分計算資源。相對于虛擬機,容器能快速部署,由于容器與底層設施、機器文件系統解耦的,所以它能在不同云、不同版本操作系統間進行遷移。
- 容器占用資源少、部署快,每個應用可以被打包成一個容器鏡像,每個應用與容器間成一對一關系也使容器有更大優勢,使用容器可以在build或release 的階段,為應用創建容器鏡像 。
3. 特點
-
服務發現和負載均衡
使用 DNS 名稱或自己的 IP 地址公開容器,如果進入容器的流量很大,可以負載均衡并分配網絡流量。 -
存儲編排
允許用戶自動掛載選擇的存儲系統,例如本地存儲、公共云提供商等。 -
自動部署和回滾
可以使用 Kubernetes 描述已部署容器的所需狀態,它可以以受控的速率將實際狀態 更改為期望狀態。eg.你可以自動化 Kubernetes 來為你的部署創建新容器, 刪除現有容器并將它們的所有資源用于新容器。 -
自動完成裝箱計算
允許指定每個容器所需 CPU 和內存(RAM)。 當容器指定了資源請求時,Kubernetes 可以做出更好的決策來管理容器的資源。 -
自我修復
Kubernetes 重新啟動失敗的容器、替換容器、殺死不響應用戶定義的 運行狀況檢查的容器,并且在準備好服務之前不將其通告給客戶端。 -
密鑰與配置管理
允許存儲和管理敏感信息,eg. 密碼、OAuth 令牌和 ssh 密鑰。 用戶可以在不重建容器鏡像的情況下部署和更新密鑰和應用程序配置,也無需在堆棧配置中暴露密鑰
總結
以上是生活随笔為你收集整理的kubernetes (1)基本概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hyperledger Besu(2)隐
- 下一篇: Hyperledger Besu(4)身