溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

kubernetes系列教程(一)初探kubernetes功

發(fā)布時(shí)間:2020-07-26 06:39:11 來源:網(wǎng)絡(luò) 閱讀:314 作者:liuhaiping123 欄目:云計(jì)算

1. kubernetes簡(jiǎn)介

1.1 kubernetes介紹

Kubernetes是google開源的一套微服務(wù),容器化的編排引擎,是google內(nèi)部容器十多年實(shí)戰(zhàn)沉淀的結(jié)晶,已戰(zhàn)勝Swarm,Messo成為容器編排的行業(yè)標(biāo)準(zhǔn)。kuberntes內(nèi)置有很多非常優(yōu)秀的特性使開發(fā)者專注于業(yè)務(wù)本身,其包含的功能如下:

  • Service discovery and load balancing,服務(wù)發(fā)現(xiàn)和負(fù)載均衡,通過DNS實(shí)現(xiàn)內(nèi)部解析,service實(shí)現(xiàn)負(fù)載均衡
  • Storage orchestration,存儲(chǔ)編排,通過plungin的形式支持多種存儲(chǔ),如本地,nfs,ceph,公有云快存儲(chǔ)等
  • Automated rollouts and rollbacks,自動(dòng)發(fā)布與回滾,通過匹配當(dāng)前狀態(tài)與目標(biāo)狀態(tài)一致,更新失敗時(shí)可回滾
  • Automatic bin packing,自動(dòng)資源調(diào)度,可以設(shè)置pod調(diào)度的所需(requests)資源和限制資源(limits)
  • Self-healing,內(nèi)置的健康檢查策略,自動(dòng)發(fā)現(xiàn)和處理集群內(nèi)的異常,更換,需重啟的pod節(jié)點(diǎn)
  • Secret and configuration management,密鑰和配置管理,對(duì)于敏感信息如密碼,賬號(hào)的那個(gè)通過secret存儲(chǔ),應(yīng)用的配置文件通過configmap存儲(chǔ),避免將配置文件固定在鏡像中,增加容器編排的靈活性
  • Batch execution,批處理執(zhí)行,通過job和cronjob提供單次批處理任務(wù)和循環(huán)計(jì)劃任務(wù)功能的實(shí)現(xiàn)
  • Horizontal scaling,橫向擴(kuò)展功能,包含有HPA和AS,即應(yīng)用的基于CPU利用率的彈性伸縮和基于平臺(tái)級(jí)的彈性伸縮,如自動(dòng)增加node和刪除nodes節(jié)點(diǎn)。

1.2 kubernetes架構(gòu)

kubernetes系列教程(一)初探kubernetes功

kubernetes包含兩種角色:master節(jié)點(diǎn)和node節(jié)點(diǎn),master節(jié)點(diǎn)是集群的控制管理節(jié)點(diǎn),作為整個(gè)k8s集群的大腦。

  • 負(fù)責(zé)集群所有接入請(qǐng)求(kube-apiserver),在整個(gè)集群的入口;
  • 集群資源調(diào)度(kube-controller-scheduler),通過watch監(jiān)視pod的創(chuàng)建,負(fù)責(zé)將pod調(diào)度到合適的node節(jié)點(diǎn);
  • 集群狀態(tài)的一致性(kube-controller-manager),通過多種控制器確保集群的一致性,包含有Node Controller,Replication Controller,Endpoints Controller等;
  • 元數(shù)據(jù)信息存儲(chǔ)(etcd),數(shù)據(jù)持久存儲(chǔ)化,存儲(chǔ)集群中包括node,pod,rc,service等數(shù)據(jù);

通常由3或5個(gè)節(jié)點(diǎn)組成高可用集群,其中etcd內(nèi)置的集群組成,kube-apiserver由haproxy或nginx做負(fù)載分發(fā),kube-scheduler和kube-controller-manager內(nèi)置的選舉機(jī)制保障,確保集群內(nèi)同一個(gè)時(shí)刻只有一個(gè)leader節(jié)點(diǎn),其他處于阻塞狀態(tài),防止腦裂。

node節(jié)點(diǎn)是實(shí)際的工作節(jié)點(diǎn),負(fù)責(zé)集群負(fù)載的實(shí)際運(yùn)行,即pod運(yùn)行的載體,其通常包含三個(gè)組件:Container Runtime,kubelet和kube-proxy

  • Container Runtime是容器運(yùn)行時(shí),負(fù)責(zé)實(shí)現(xiàn)container生命周期管理,如docker,containerd,rktlet;
  • kubelet負(fù)責(zé)鏡像和pod的管理,
  • kube-proxy是service服務(wù)實(shí)現(xiàn)的抽閑,負(fù)責(zé)維護(hù)和轉(zhuǎn)發(fā)pod的路由,實(shí)現(xiàn)集群內(nèi)部和外部網(wǎng)絡(luò)的訪問。

其他組件還包括

  • cloud-controller-manager,用于公有云的接入實(shí)現(xiàn),提供節(jié)點(diǎn)管理(node),路由管理,服務(wù)管理(LoadBalancer和Ingress),存儲(chǔ)管理(Volume,如云盤,NAS接入),需要由公有云廠商實(shí)現(xiàn)具體的細(xì)節(jié),kubernetes提供實(shí)現(xiàn)接口的接入,如騰訊云目前提供CVM的node管理,節(jié)點(diǎn)的彈性伸縮(AS),負(fù)載均衡的接入(CLB),存儲(chǔ)的管理(CBS和CFS)等產(chǎn)品的集成;
  • DNS組件由kube-dns或coredns實(shí)現(xiàn)集群內(nèi)的名稱解析;
  • kubernetes-dashboard用于圖形界面管理;
  • kubectl命令行工具進(jìn)行API交互;
  • 監(jiān)控系統(tǒng)用于采集node和pod的監(jiān)控?cái)?shù)據(jù),如prometheus,heapster+influxdb+grafana;
  • 日志采集系統(tǒng),用于收集容器的業(yè)務(wù)數(shù)據(jù),實(shí)現(xiàn)日志的采集,存儲(chǔ)和展示,實(shí)現(xiàn)有Fluentd+ELK(ElasticSearch+Logstash+Kiabana)。

1.3 參考文檔

  1. kubernetes功能介紹,https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/

  2. kubernetes組件介紹https://kubernetes.io/docs/concepts/overview/components/

?


返回kubernetes系列教程目錄

**如果覺得文章對(duì)您有幫助,請(qǐng)訂閱專欄,分享給有需要的朋友吧

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI