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包含兩種角色: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的路由,實作叢集内部和外部網絡的通路。
阿裡雲伺服器: 活動位址
購買可領取:
阿裡雲代金券