天天看點

kubernetes系列教程(一)初探kubernetes功能與元件

1. kubernetes簡介

1.1 kubernetes介紹

Kubernetes是google開源的一套微服務,容器化的編排引擎,是google内部容器十多年實戰沉澱的結晶,已戰勝Swarm,Messo成為容器編排的行業标準。kuberntes内置有很多非常優秀的特性使開發者專注于業務本身,其包含的功能如下:

Service discovery and load balancing,服務發現和負載均衡,通過DNS實作内部解析,service實作負載均衡

Storage orchestration,存儲編排,通過plungin的形式支援多種存儲,如本地,nfs,ceph,公有雲快存儲等

Automated rollouts and rollbacks,自動釋出與復原,通過比對目前狀态與目标狀态一緻,更新失敗時可復原

Automatic bin packing,自動資源排程,可以設定pod排程的所需(requests)資源和限制資源(limits)

Self-healing,内置的健康檢查政策,自動發現和處理叢集内的異常,更換,需重新開機的pod節點

Secret and configuration management,密鑰和配置管理,對于敏感資訊如密碼,賬号的那個通過secret存儲,應用的配置檔案通過configmap存儲,避免将配置檔案固定在鏡像中,增加容器編排的靈活性

Batch execution,批處理執行,通過job和cronjob提供單次批處理任務和循環計劃任務功能的實作

Horizontal scaling,橫向擴充功能,包含有HPA和AS,即應用的基于CPU使用率的彈性伸縮和基于平台級的彈性伸縮,如自動增加node和删除nodes節點。

1.2 kubernetes架構

kubernetes整體架構

kubernetes系列教程(一)初探kubernetes功能與元件

kubernetes包含兩種角色:master節點和node節點,master節點是叢集的控制管理節點,作為整個k8s叢集的大腦。

負責叢集所有接入請求(kube-apiserver),在整個叢集的入口;

叢集資源排程(kube-controller-scheduler),通過watch監視pod的建立,負責将pod排程到合适的node節點;

叢集狀态的一緻性(kube-controller-manager),通過多種控制器確定叢集的一緻性,包含有Node Controller,Replication Controller,Endpoints Controller等;

中繼資料資訊存儲(etcd),資料持久存儲化,存儲叢集中包括node,pod,rc,service等資料;

通常由3或5個節點組成高可用叢集,其中etcd内置的叢集組成,kube-apiserver由haproxy或nginx做負載分發,kube-scheduler和kube-controller-manager内置的選舉機制保障,確定叢集内同一個時刻隻有一個leader節點,其他處于阻塞狀态,防止腦裂。

node節點是實際的工作節點,負責叢集負載的實際運作,即pod運作的載體,其通常包含三個元件:Container Runtime,kubelet和kube-proxy
           

Container Runtime是容器運作時,負責實作container生命周期管理,如docker,containerd,rktlet;

kubelet負責鏡像和pod的管理,

kube-proxy是service服務實作的抽閑,負責維護和轉發pod的路由,實作叢集内部和外部網絡的通路。

阿裡雲伺服器: 活動位址

購買可領取:

阿裡雲代金券

繼續閱讀