日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
面試問到了K8S原理,花5分鐘來總結(jié)下,以后再也不怕了

前言

創(chuàng)新互聯(lián)公司于2013年成立,先為興縣等服務(wù)建站,興縣等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為興縣企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

K8S

K8S現(xiàn)在是一項(xiàng)必會(huì)的技能,它為軟件工程師提供了強(qiáng)大的容器編排能力,模糊了開發(fā)和運(yùn)維之間的邊界,讓我們開發(fā)、管理和維護(hù)一個(gè)大型的分布式系統(tǒng)和項(xiàng)目變得更加容易,并且每次面試多多少少都會(huì)問到,筆者也是被問到了很多次。本文就準(zhǔn)備用最短的篇幅來介紹下K8S的工作過程。

K8S架構(gòu)組成

Kubernetes最初源于谷歌內(nèi)部的Borg,提供了面向應(yīng)用的容器集群部署和管理系統(tǒng)。Kubernetes借鑒了Borg的設(shè)計(jì)理念,比如Pod、Service、Labels和單Pod單IP等。

K8S架構(gòu)圖

Kubernetes主要由以下幾個(gè)核心組件組成:

  • etcd保存了整個(gè)集群的狀態(tài);
  • apiserver提供了資源操作的唯一入口,并提供認(rèn)證、授權(quán)、訪問控制、API注冊(cè)和發(fā)現(xiàn)等機(jī)制;
  • controller manager負(fù)責(zé)維護(hù)集群的狀態(tài),比如故障檢測(cè)、自動(dòng)擴(kuò)展、滾動(dòng)更新等;
  • scheduler負(fù)責(zé)資源的調(diào)度,按照預(yù)定的調(diào)度策略將Pod調(diào)度到相應(yīng)的機(jī)器上;
  • kubelet負(fù)責(zé)維護(hù)容器的生命周期,同時(shí)也負(fù)責(zé)Volume(CVI)和網(wǎng)絡(luò)(CNI)的管理;
  • Container runtime負(fù)責(zé)鏡像管理以及Pod和容器的真正運(yùn)行(CRI);
  • kube-proxy負(fù)責(zé)為Service提供cluster內(nèi)部的服務(wù)發(fā)現(xiàn)和負(fù)載均衡;

除了核心組件,還有一些推薦的Add-ons:

  • kube-dns負(fù)責(zé)為整個(gè)集群提供DNS服務(wù)
  • Ingress Controller為服務(wù)提供外網(wǎng)入口
  • Heapster提供資源監(jiān)控
  • Dashboard提供GUI
  • Federation提供跨可用區(qū)的集群
  • Fluentd-elasticsearch提供集群日志采集、存儲(chǔ)與查詢

k8s各組件間工作流程

K8S工作過程

①運(yùn)維人員向kube-apiserver發(fā)出指令(我想干什么,我期望事情是什么狀態(tài))

(以下kube-apiserver簡(jiǎn)稱apiserver、kube-controller-manager簡(jiǎn)稱controller、kube-scheduler簡(jiǎn)稱scheduler)

②api響應(yīng)命令,通過一系列認(rèn)證授權(quán),把pod數(shù)據(jù)存儲(chǔ)到etcd,創(chuàng)建deployment資源并初始化。(期望狀態(tài))

③controller通過list-watch機(jī)制,監(jiān)測(cè)發(fā)現(xiàn)新的deployment,將該資源加入到內(nèi)部工作隊(duì)列,發(fā)現(xiàn)該資源沒有關(guān)聯(lián)的pod和replicaset,啟用deployment controller創(chuàng)建replicaset資源,再啟用replicaset controller創(chuàng)建pod。

④所有controller被創(chuàng)建完成后.將deployment,replicaset,pod資源更新存儲(chǔ)到etcd。

⑤scheduler通過list-watch機(jī)制,監(jiān)測(cè)發(fā)現(xiàn)新的pod,經(jīng)過主機(jī)過濾、主機(jī)打分規(guī)則,將pod綁定(binding)到合適的主機(jī)。

⑥將綁定結(jié)果存儲(chǔ)到etcd。

⑦kubelet每隔 20s(可以自定義)向apiserver通過NodeName 獲取自身Node上所要運(yùn)行的pod清單.通過與自己的內(nèi)部緩存進(jìn)行比較,新增加pod。

⑧kubelet創(chuàng)建pod。

⑨kube-proxy為新創(chuàng)建的pod注冊(cè)動(dòng)態(tài)DNS到CoreOS。給pod的service添加iptables/ipvs規(guī)則,用于服務(wù)發(fā)現(xiàn)和負(fù)載均衡。

⑩controller通過control loop(控制循環(huán))將當(dāng)前pod狀態(tài)與用戶所期望的狀態(tài)做對(duì)比,如果當(dāng)前狀態(tài)與用戶期望狀態(tài)不同,則controller會(huì)將pod修改為用戶期望狀態(tài),實(shí)在不行會(huì)將此pod刪掉,然后重新創(chuàng)建pod。

總結(jié)

[[348916]]

K8S

Kubernetes的架構(gòu)設(shè)計(jì),理清楚之后,其實(shí)還是很簡(jiǎn)單的。面試的時(shí)候問到K8S原理,對(duì)于大部分人來說能答出這些,基本上就差不多了。Kubernetes深入的實(shí)現(xiàn)原理,還需要單獨(dú)分析,本文只是一個(gè)拋磚引玉,如果有錯(cuò)誤,歡迎大家批評(píng)指正。大家一起努力進(jìn)步!


網(wǎng)站標(biāo)題:面試問到了K8S原理,花5分鐘來總結(jié)下,以后再也不怕了
標(biāo)題URL:http://m.5511xx.com/article/dppjige.html