1. kubernetes簡介
1.1 kubernetes介紹
Kubernetes是google開源的一套微服務,容器化的編排引擎,是google內部容器十多年實戰沉澱的結晶,已打敗Swarm,Messo成爲容器編排的行業標準。kuberntes內置有不少很是優秀的特性使開發者專一於業務自己,其包含的功能以下:node
- 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包含兩種角色:master節點和node節點,master節點是集羣的控制管理節點,做爲整個k8s集羣的大腦。nginx
- 負責集羣全部接入請求(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節點,其餘處於阻塞狀態,防止腦裂。docker
node節點是實際的工做節點,負責集羣負載的實際運行,即pod運行的載體,其一般包含三個組件:Container Runtime,kubelet和kube-proxyapi
- Container Runtime是容器運行時,負責實現container生命週期管理,如docker,containerd,rktlet;
- kubelet負責鏡像和pod的管理,
- kube-proxy是service服務實現的抽閒,負責維護和轉發pod的路由,實現集羣內部和外部網絡的訪問。
其餘組件還包括網絡
- cloud-controller-manager,用於公有云的接入實現,提供節點管理(node),路由管理,服務管理(LoadBalancer和Ingress),存儲管理(Volume,如雲盤,NAS接入),須要由公有云廠商實現具體的細節,kubernetes提供實現接口的接入,如騰訊雲目前提供CVM的node管理,節點的彈性伸縮(AS),負載均衡的接入(CLB),存儲的管理(CBS和CFS)等產品的集成;
- DNS組件由kube-dns或coredns實現集羣內的名稱解析;
- kubernetes-dashboard用於圖形界面管理;
- kubectl命令行工具進行API交互;
- 監控系統用於採集node和pod的監控數據,如prometheus,heapster+influxdb+grafana;
- 日誌採集系統,用於收集容器的業務數據,實現日誌的採集,存儲和展現,實現有Fluentd+ELK(ElasticSearch+Logstash+Kiabana)。
1.3 參考文檔
-
kubernetes功能介紹,https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/架構
- kubernetes組件介紹https://kubernetes.io/docs/concepts/overview/components/
返回kubernetes系列教程目錄負載均衡
**若是以爲文章對您有幫助,請訂閱專欄,分享給有須要的朋友吧ide