隨著云計算步入第二個發展十年,我國云計算市場進入高速增長階段。容器、微服務、DevOps等技術不斷推動云計算的變革,云計算應用深入到政府、金融、工業、交通、物流、醫療健康等傳統行業,K8s更是無處不在,成為企業云原生力量的重頭戲。今天小編就給大家簡單介紹一下云計算學習課程中有關K8s的概念知識。
K8s是什么?
K8s,即Kubernetes,是Google開源的容器集群管理系統,在Docker技術的基礎上,為容器化的應用提供部署運行、資源調度、服務發現和動態伸縮等一系列完整功能,提高了大規模容器集群管理的便捷性。紅帽首席架構師Bilgin Ibryam曾表示,容器編排工具競爭的結果不管是哪種情況,Kubernetes都是最后一個活下來的平臺。有分析師預計,2019年將是“K8s年”。
Kubernetes是當今最具變革意義的云技術,憑借其內置的高可用性、細粒度、可伸縮性、可移植性等特點,提供了許多在本地和云之間真正可互相操作的關鍵特性。Kubernetes既可以幫助企業用于新應用的開發,也能重構企業過去的遺留系統。不管是哪種類型的企業,多大規模的企業,都希望借助Kubernetes來實現云端轉型。
K8s的核心概念
Master:K8s集群的管理節點,負責管理集群,提供集群的資源數據訪問入口;
Node:K8s集群架構中運行Pod的服務節點(亦叫agent或minion)、集群操作的單元,用來承載被分配Pod的運行,是Pod運行的宿主機;
Pod:運行于Node節點上,若干相關容器的組合,是K8s進行創建、調度和管理的最小單位,提供了比容器更高層次的抽象,使得部署和管理更加靈活;
Replication Controller:用來管理Pod的副本,保證集群中存在指定數量的Pod副本;
Service:定義了Pod的邏輯集合和訪問該集合的策略,是真實服務的抽象;
Label:K8s中的任意API對象都是通過Label進行標識,Label的實質是一系列的Key/Value鍵值對,其中key于value由用戶自己指定。
K8s的全生命周期管理
在K8s進行管理應用的時候,基本步驟是:創建集群,部署應用,發布應用,擴展應用,更新應用。
創建集群。在K8s只要使用兩條指令就可以創建一個集群,一個是kubectl init進行初始化,創建一個master節點,第二條指令就是kubectl join xxx創建一個node節點,加入這個集群。
部署應用。使用集群的主要目標是用來提供服務,讓開發開發的應用程序能在集群上運行。在開發完成程序之后,需要將程序打包成image,然后放到registry中,就能夠運行應用了。
發布應用。發布應用主要就是對外提供服務,需要注意的是,在集群當中,創建的IP地址等資源,只有在同一個集群中才能訪問。
擴展應用。想要擴展容量,只需一個pod就可以搞定;想要縮容,不用創建vm,不用去部署中間件,不用去各種修改配置,可以自動化實現。
更新應用。根據新的image創建一個pod,分配各種資源,然后自動負載均衡,刪除老的pod,然后繼續更新,這個過程不會中斷服務,如果更新錯了,只需回滾就可以。
K8s是一個編排容器的工具,其實也是管理應用的全生命周期的一個工具,從創建應用,應用的部署,應用提供服務,擴容縮容應用,應用更新,都非常的方便,而且可以做到故障自愈。想要成為一個優秀的云計算工程師,掌握K8s很有必要!