云原生新時代弄潮兒k8s憑什么在容器化方面獨樹一幟?


Kubernetes 可以為做些什么?
在學習一種新技能之前,囧囧建議不要上去先看各種牛叉的實作,我們需要先搞清楚這個技能是什么?學習了之后能為我們提升什么有用的價值,畢竟在當今技術快速更新迭代的時代,我們沒有足夠的精力去學習太多沒有用的知識去擴展的無用的廣度,只有你明白了你需要學習的東西的價值,你才有動力去持續跟進,去剖析,去理解,去愛上它,用它創造價值,

Kubernetes 是什么?
Kubernetes 這個名字源于希臘語,意為“舵手”或“飛行員”,k8s 這個縮寫是因為 k 和 s 之間有八個字符的關系??????,
官方解讀
Kubernetes 是一個可移植的,可擴展的開源平臺,
用于管理容器化的作業負載和服務,方便了宣告式配置和自動化,
它擁有一個龐大且快速增長的生態系統,Kubernetes 的服務,支持和工具廣泛可用,
部署演進

傳統部署
各個組織機構在物理服務器上運行應用程式,無法為物理服務器中的應用程式定義資源邊界,更多的選擇是憑借工程師的個人經驗去分配資源,也就是無法合理的去規劃資源分配,這會導致資源分配問題,
虛擬化部署
虛擬化技術允許你在單個物理服務器的 CPU 上運行多個虛擬機(VM),允許應用程式在 VM 之間隔離,虛擬化技術能夠更好地利用物理服務器上的資源,
相比于傳統部署方式,優點是更好的可伸縮性,降低硬體成本,
容器部署
以應用程式為中心的管理
資源隔離的粒度更細膩,比VM要更簡約,更容易擴展移植,
容器類似于 VM,但是它們具有被放寬的隔離屬性,可以在應用程式之間共享作業系統(OS),
為什么需要 Kubernetes,它能做什么?

應用容器化
容器是打包和運行應用程式的好方式,
容器化已經做到應用程式能以簡單快速的方式發布和更新,
線上環境我們應用程式需要持續穩定的運行,不能早上部署好了,下午用戶無法使用,
出現故障問題的時候,需要有快速回應的機制去確保不會造成重大影響,
程式是無錯的情況下,對應到容器層面,就是我們需要保證容器是正確的,不能因為容器的意外而影響到前線??,
這意味著我們需要管理運行應用程式的容器,時刻監督著運行情況,并確保容器不會停機,
如果一個容器發生故障,需要快速采取措施,例如重啟容器,或者另外啟動一個容器去替代它,

半夜凌晨兩點鐘,你在家里呼呼大睡,線上瘋狂報警,你不得不趕緊起床解決??????

咦,想想都慘呀??????!
如果交給系統去處理容器問題,會不會更容易?更方便?不再需要你精神高度集中每天注意可能發生的各種意外情況???
所以,k8s來了,它來了,它來了,它帶著旋風跑來了!??????
Kubernetes 提供了一個可彈性運行分布式系統的框架,

-
服務發現和負載均衡
Kubernetes 可以使用 DNS 名稱或自己的 IP 地址公開容器,如果進入容器的流量很大, Kubernetes 可以負載均衡并分配網路流量,從而使部署穩定,
-
存盤編排
Kubernetes 允許你自動掛載你選擇的存盤系統,例如本地存盤、公共云提供商等,
-
自動部署和回滾
你可以使用 Kubernetes 描述已部署容器的所需狀態,它可以以受控的速率將實際狀態 更改為期望狀態,例如,你可以自動化 Kubernetes 來為你的部署創建新容器, 洗掉現有容器并將它們的所有資源用于新容器,
-
自動完成裝箱計算
Kubernetes 允許你指定每個容器所需 CPU 和記憶體(RAM),當容器指定了資源請求時,Kubernetes 可以做出更好的決策來管理容器的資源,
-
自我修復
Kubernetes 重新啟動失敗的容器、替換容器、殺死不回應用戶定義的 運行狀況檢查的容器,并且在準備好服務之前不將其通告給客戶端,
-
密鑰與配置管理
Kubernetes 允許你存盤和管理敏感資訊,例如密碼、OAuth 令牌和 ssh 密鑰,你可以在不重建容器鏡像的情況下部署和更新密鑰和應用程式配置,也無需在堆疊配置中暴露密鑰,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/421820.html
標籤:其他
