成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

使用FIT2CLOUD在青云QingCloud快速部署和管理Kubernetes集群

psychola / 3630人閱讀

摘要:管理其下控制的的生命周期,保證指定數(shù)量的正常運(yùn)行。青云在國(guó)內(nèi)是獨(dú)樹(shù)一幟,特別適合用來(lái)部署這種分布式應(yīng)用。其中,是提供的命令行工具,可在任何被管理的機(jī)器上運(yùn)行。這里嘗試用命令行工具檢查下集群狀態(tài)。

一、Kubernetes概述

Kubernetes是Google一直在推進(jìn)的容器調(diào)度和管理系統(tǒng),是Google內(nèi)部使用的容器管理系統(tǒng)Borg的開(kāi)源版本。它可以實(shí)現(xiàn)對(duì)Docker容器的部署,配置,伸縮和監(jiān)控等。當(dāng)下,Kubernetes絕對(duì)是最火熱的開(kāi)源工程之一,在短短的一年多時(shí)間里,其Github工程已有接近兩萬(wàn)次的Commits提交,一千多個(gè)PR。目前已經(jīng)正式發(fā)布1.0版本,具備服務(wù)生產(chǎn)環(huán)境的能力。

Kubernetes作為容器管理和調(diào)度系統(tǒng),能在多臺(tái)Host上部署預(yù)定義的容器,實(shí)現(xiàn)跨Host容器的互通訪(fǎng)問(wèn)。下圖是Kubernetes的High-level架構(gòu)圖:

Kubernetes的基本概念包括:

Cluster:Kubernetes維護(hù)一個(gè)集群,Docker的containers都運(yùn)行其上。并且,這個(gè)集群可以運(yùn)維在任何云及Bare Metal物理機(jī)上。
Master:Master節(jié)點(diǎn)包含apiserver,controller-manager,sheduler等核心組件(常常也將etcd部署于其中)。

Node:Kubernetes采用Master-Slaves方式部署,多帶帶一臺(tái)Slave機(jī)器稱(chēng)為一個(gè)Node(以前叫 Minion)。

Pods:Kubernetes最小管理單位,用于控制創(chuàng)建、重啟、伸縮一組功能相近,共享磁盤(pán)的Docker容器。雖然Pod可以多帶帶創(chuàng)建使用,但是推薦通過(guò)Replication Controller管理。

Replication controllers(RC):管理其下控制的Pods的生命周期,保證指定數(shù)量(replicas)的Pods正常運(yùn)行。

Service:可用作服務(wù)發(fā)現(xiàn),類(lèi)似于Loadbalancer,通過(guò)Selectors為一組Pods提供對(duì)外的接口。

Labels:K/V鍵值對(duì),用來(lái)標(biāo)記Kubernetes組件的類(lèi)別關(guān)系(例如標(biāo)記一組Pods是frontServices,另一組是backServices)。Labels對(duì)于Kubernetes的伸縮調(diào)度非常重要。

如果想了解Low-Level的架構(gòu)細(xì)節(jié),可以查看其官網(wǎng)的架構(gòu)圖http://kubernetes.io/v1.0/docs/design/architecture.png。

從官網(wǎng)的架構(gòu)圖中可以看到,Kubernetes是一個(gè)組件多且依賴(lài)復(fù)雜的系統(tǒng)(上圖僅僅是單Master,三臺(tái)Node的情況。目前,Kubernetes已經(jīng)支持Multi-Masters的部署架構(gòu),即需要至少三臺(tái)主機(jī)作為Master)。并且Kubernetes社區(qū)開(kāi)發(fā)速度非???,版本差異大,文檔更新往往不及時(shí)。所以,如果需要完整部署測(cè)試仍然有不少的工作量。如果要在生產(chǎn)中使用它,其運(yùn)維管理也有較高的門(mén)檻。這里,我們將詳細(xì)介紹如何使用FIT2CLOUD幫助用戶(hù)高效完成Kubernetes的系統(tǒng)部署、日常運(yùn)維等,降低用戶(hù)使用它的難度。

二、Kubernetes、青云QingCloud、FIT2CLOUD三者之間的關(guān)系

首先,Kubernetes作為容器管理系統(tǒng),其自身也需要部署在相應(yīng)的計(jì)算資源之上。而我們認(rèn)為只有部署在IaaS平臺(tái)上的Kubernetes才能充分發(fā)揮其彈性調(diào)度管理的特性。這里,我們選擇了QingCloud作為部署Kubernetes集群的IaaS平臺(tái),主要是考慮如下幾個(gè)因素:

從安全角度看,類(lèi)似Kubernetes這類(lèi)的PaaS應(yīng)該是部署在VPC內(nèi)。青云VPC在國(guó)內(nèi)是獨(dú)樹(shù)一幟,特別適合用來(lái)部署Kubernetes這種分布式應(yīng)用。

從部署管理角度看,青云提供的“userdata”和“metadata”功能在自動(dòng)初始化云主機(jī)上非常有用,可以簡(jiǎn)化整個(gè)部署過(guò)程。

從成本和靈活性角度看,青云的按秒計(jì)費(fèi),資源快速響應(yīng)是非常有吸引力的。這點(diǎn)以我們自身為例:一年多以來(lái)我們已經(jīng)在青云上面創(chuàng)建了超過(guò)1萬(wàn)五千臺(tái)虛機(jī),花費(fèi)僅在1000多。

其次,Kubernetes本身作為一個(gè)復(fù)雜的分布式應(yīng)用,也需要工具(比如FIT2CLOUD)來(lái)實(shí)現(xiàn)快速部署、統(tǒng)一管理、監(jiān)控告警、升級(jí)和伸縮。Kubernetes負(fù)責(zé)容器的調(diào)度和管理,F(xiàn)IT2CLOUD則負(fù)責(zé)主機(jī)的調(diào)度和管理。

最后,從目標(biāo)用戶(hù)視角看,Kubernetes集群(容器云)的使用者是應(yīng)用開(kāi)發(fā)人員,或者準(zhǔn)確的講是基于Docker容器的微服務(wù)開(kāi)發(fā)者,而FIT2CLOUD和QingCloud的使用者是Kubernetes集群(容器云)運(yùn)維和系統(tǒng)管理員。下圖清晰描述了Kubernetes、QingCloud、FIT2CLOUD三者及其使用者之間的關(guān)系:

三、部署前的準(zhǔn)備工作:青云QingCloud VPC配置

QingCloud的VPC基于二層網(wǎng)絡(luò)隔離,實(shí)現(xiàn)了100%的私有網(wǎng)絡(luò)隔離,并且用戶(hù)在其Web控制臺(tái)就能完全操作VPC私有網(wǎng)絡(luò),包括創(chuàng)建私有網(wǎng)絡(luò),綁定公網(wǎng) IP,DHCP,端口映射轉(zhuǎn)發(fā)等。

我們推薦在QingCloud的VPC內(nèi)網(wǎng)中部署Kubernetes,之后通過(guò)綁定公網(wǎng)IP和端口映射將KubernetesMaster節(jié)點(diǎn)的apiserver endpoint暴露出來(lái)。具體部署架構(gòu)如下圖所示:

在此之前,我們需要在QingCloud的Web控制臺(tái)上配置下VPC網(wǎng)絡(luò)。具體如下:

創(chuàng)建一個(gè)VPC私有網(wǎng)絡(luò),同時(shí)創(chuàng)建一個(gè)路由器,如下圖所示:

創(chuàng)建一個(gè)虛擬路由器,并把上一步創(chuàng)建的私有網(wǎng)絡(luò)連接到該路由器上,如下圖所示:

注意:創(chuàng)建虛擬路由器時(shí),需打開(kāi)該虛擬路由器所用防火墻下行8080端口。因?yàn)樵摱丝趯⒃诤竺嬗糜谙蛲獗┞禟ubernetes服務(wù)接口。

申請(qǐng)一個(gè)公網(wǎng) IP,綁定在路由器上,以便VPC內(nèi)的Kubernetes apiserver 可以通過(guò)路由器對(duì)外提供服務(wù)。

在VPC內(nèi)建立一個(gè)負(fù)載均衡器(LoadBalancer),并為其在8080端口負(fù)載均衡器的監(jiān)聽(tīng)器來(lái)監(jiān)聽(tīng)Kubernetes Master節(jié)點(diǎn)上的apiserver服務(wù)(該服務(wù)默認(rèn)運(yùn)行在8080端口)。 這樣做的好處是可以只需要配置一次VPC私有網(wǎng)絡(luò)及端口轉(zhuǎn)發(fā)規(guī)則,在私有網(wǎng)絡(luò)內(nèi)部啟動(dòng)關(guān)閉主機(jī)都會(huì)自動(dòng)attach到LoadBalancer,對(duì)外提供服務(wù)。 具體操作如下圖:

一旦VPC創(chuàng)建配置完成,就可以開(kāi)始通過(guò)FIT2CLOUD快速部署Kubernetes集群。

四、使用FIT2CLOUD部署和管理Kubernetes集群 4.1、創(chuàng)建Kubernetes集群

如上所示,本次示例中,我們會(huì)部署一個(gè)單Master(192.168.0.3),2個(gè)Nodes(Minions)節(jié)點(diǎn)的Kubernetes集群。首先,我們會(huì)在FIT2CLOUD上創(chuàng)建兩個(gè)不同的虛機(jī)組。一個(gè)是k8s-master,作為Master節(jié)點(diǎn);一個(gè)是k8s-node作為Nodes 節(jié)點(diǎn)。具體步驟如下所示:

注:通過(guò)FIT2CLOUD在QingCloud上啟動(dòng)機(jī)器,需要先登入FIT2CLOUD控制臺(tái)并綁定QingCloud云賬號(hào),具體步驟可以參考FIT2CLOUD官方文檔。另外請(qǐng)參考 FIT2CLOUD新手指南(QingCloud版)了解如何快速開(kāi)始在FIT2CLOUD中管理QingCloud資源。

第一步:通過(guò)FIT2CLOUD控制臺(tái)創(chuàng)建Kubernetes集群和虛機(jī)組

如下圖創(chuàng)建Master節(jié)點(diǎn)虛機(jī)組。注意這里必須按指定虛機(jī)組名稱(chēng),因?yàn)楹罄m(xù)的初始化Master節(jié)點(diǎn)腳本需要利用到這個(gè)參數(shù)自動(dòng)發(fā)現(xiàn)master的相關(guān)信息。

類(lèi)似創(chuàng)建Node節(jié)點(diǎn)的虛機(jī)組。兩個(gè)虛機(jī)組創(chuàng)建完成后會(huì)在虛機(jī)組列表中顯示,如下圖:

第二步:新建虛機(jī)創(chuàng)建模版,分別用來(lái)Provision Master節(jié)點(diǎn)主機(jī)和Nodes節(jié)點(diǎn)主機(jī)

“虛機(jī)創(chuàng)建模板”是FIT2CLOUD內(nèi)用來(lái)快速創(chuàng)建云主機(jī)的預(yù)定義模板。包括云賬號(hào)信息、云主機(jī)配置以及相關(guān)初始化操作。為快速Provision這里的Kubernetes集群,我們需要首先新建這些模板。為新建這些模板并實(shí)現(xiàn)自動(dòng)部署Kubernetes集群,我們已經(jīng)在FIT2CLOUD中內(nèi)置了3個(gè)Kubernetes集群部署腳本(這些腳本在CentOS 7.0系統(tǒng)上測(cè)試通過(guò),在本示例中無(wú)論是Master節(jié)點(diǎn)還是Salve節(jié)點(diǎn)都請(qǐng)選擇CentOS 7.0操作系統(tǒng)),分別如下:

k8s_master_installer.sh:用來(lái)部署Kubernetes Master節(jié)點(diǎn)。

k8s_node_installer.sh: 用來(lái)部署Kubernetes Node節(jié)點(diǎn)。

k8s_ui_installer.sh:用來(lái)激活安裝 kube-ui (Kubernetes webUI)。
這些腳本可以在FIT2CLOUD的腳本列表中查看到,如下圖:

首先,設(shè)置Master節(jié)點(diǎn)的“創(chuàng)建虛機(jī)模版”,如下圖:

在這其中有兩個(gè)點(diǎn)需要注意,具體如下:

第一點(diǎn):如上圖可見(jiàn),創(chuàng)建虛機(jī)模版時(shí)可以在初始化操作中執(zhí)行腳本,這里選擇Kubernetes Master節(jié)點(diǎn)的安裝部署腳本k8s_master_installer.sh。如希望了解Master節(jié)點(diǎn)的部署流程,請(qǐng)倉(cāng)庫(kù)該腳本內(nèi)具體內(nèi)容。

第二點(diǎn):需要在Master節(jié)點(diǎn)的“創(chuàng)建虛機(jī)模板”內(nèi)指定Master主機(jī)自動(dòng)attach到負(fù)載均衡器上,從而將Kubernetes Master節(jié)點(diǎn)上的apiserver暴露給VPC外部,方便用戶(hù)從VPC外部通過(guò)公網(wǎng)IP控制Kubernetes集群。同時(shí),集群上運(yùn)行的真正負(fù)載Service也可以由此通過(guò)apiserver proxy供外部訪(fǎng)問(wèn)。該設(shè)置如下圖所示:

其次,設(shè)置Node節(jié)點(diǎn)的“創(chuàng)建虛機(jī)模板”。和Master節(jié)點(diǎn)類(lèi)似,設(shè)置Node節(jié)點(diǎn)的“創(chuàng)建虛機(jī)模板”時(shí)候需要指定初始化腳本為k8s_node_installer.sh,并同樣把啟動(dòng)的Node節(jié)點(diǎn)放到和Master節(jié)點(diǎn)相同的QingCloud私有網(wǎng)絡(luò)。但是,Node節(jié)點(diǎn)不需要如同Master節(jié)點(diǎn)那樣掛載到負(fù)載均衡器上(因?yàn)镹ode節(jié)點(diǎn)在本示例不需要對(duì)外暴露端口,而是通過(guò)Master節(jié)點(diǎn)的apiserver proxy轉(zhuǎn)發(fā)的方式對(duì)外暴露服務(wù))。k8s_node_installer.sh腳本中詳細(xì)描述了整個(gè)Node節(jié)點(diǎn)的部署流程,如下圖:

在Slave節(jié)點(diǎn)的部署腳本中需要注意如下兩點(diǎn):

上圖第一處紅色標(biāo)注中,腳本會(huì)調(diào)用f2cadm命令獲取集群Master節(jié)點(diǎn)的內(nèi)網(wǎng)IP信息,以便配置Node節(jié)點(diǎn)的kubelet服務(wù),使其加入集群。 其中,f2cadm是FIT2CLOUD提供的命令行工具,可在任何被FIT2CLOUD管理的機(jī)器上運(yùn)行。該命令行工具可從FIT2CLOUD服務(wù)端獲取當(dāng)前集群/虛機(jī)組/虛機(jī)的元數(shù)據(jù)信息。這里,f2cadm工具通過(guò)虛機(jī)組名稱(chēng)"k8s-master"來(lái)獲取集群中Master節(jié)點(diǎn)的內(nèi)網(wǎng)IP信息,這也是為什么前面創(chuàng)建Master節(jié)點(diǎn)虛機(jī)組名稱(chēng)必須為"k8s-master"的原因。當(dāng)然,理論上只需要保持腳本內(nèi)和虛機(jī)組定名稱(chēng)一致即可,不一定必須是"k8s-master"。

kubelet配置文件中,設(shè)定 KUBELET_ARGS="--pod-infra-container-image=repository.fit2cloud.com:5000/pause:latest"。如果不設(shè)置,國(guó)內(nèi)用戶(hù)啟動(dòng) kubelet 服務(wù)會(huì)到Google服務(wù)器下載 pause 的image,這會(huì)導(dǎo)致網(wǎng)絡(luò)問(wèn)題。

第三步:創(chuàng)建Kubernetes集群所需的虛機(jī)

完成上述配置之后,我們就可以回到控制臺(tái)虛機(jī)頁(yè)面,按順序啟動(dòng)一臺(tái)KubernetesMaster 主機(jī),等待其創(chuàng)建成功并執(zhí)行初始化部署腳本完畢,再啟動(dòng)2臺(tái)Nodes主機(jī)(以后如果需要擴(kuò)展Node節(jié)點(diǎn),只需要再啟動(dòng)所需數(shù)量的Nodes主機(jī)即可)。如下圖,Kubernetes集群已經(jīng)創(chuàng)建完畢:

至此,Kubernetes集群?jiǎn)?dòng)完畢,并已經(jīng)可以部署完成并正常工作。這里嘗試用kubectl命令行工具檢查下集群狀態(tài)。在本地運(yùn)行該命令后,其結(jié)果會(huì)展示2個(gè)Node節(jié)點(diǎn)已經(jīng)上線(xiàn)(Ready),具體如下。

?  ~ export KUBERNETES_MASTER=http://119.254.111.36:8080
?  ~ kubectl get nodes
NAME            LABELS                                 STATUS
192.168.100.3   kubernetes.io/hostname=192.168.100.3   Ready
192.168.100.5   kubernetes.io/hostname=192.168.100.5   Ready

由于是本地使用 kubectl 命令,需要設(shè)定下 KUBERNETES_MASTER 環(huán)境變量(apiserver endpoint地址),即為VPC出口公網(wǎng)IP的8080端口。

這時(shí)候我們就可以開(kāi)始測(cè)試一些Kubernetes的基本功能,比如創(chuàng)建Replication Controllers,啟動(dòng)nginx pods 并注冊(cè)一個(gè)名為nginxservice的Service做服務(wù)發(fā)現(xiàn)。

創(chuàng)建 replication controller

?  k8s cat ./nginx-rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:
  name: nginx
spec:
  replicas: 3
  selector:
    app: nginx
  template:
    metadata:
      name: nginx
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: index.alauda.cn/library/nginx:latest
        ports:
        - containerPort: 80
?  k8s kubectl create -f nginx-rc.yaml
replicationcontrollers/nginx

檢查 pods 啟動(dòng)狀態(tài):

?  k8s kubectl get pods
NAME             READY     REASON    RESTARTS   AGE
nginx-5wjo3      1/1       Running   0          14m
nginx-a2nak      1/1       Running   0          14m
nginx-lb5rv      1/1       Running   0          14m

注冊(cè)名為nginxservice的Service:

?  k8s cat nginx-svc.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    name: nginxservice
  name: nginxservice
spec:
  ports:
    - port: 80
  selector:
    app: nginx
?  k8s kubectl create -f nginx-svc.yaml
services/nginxservice

創(chuàng)建好nginx pods和相應(yīng)service后,我們可以通過(guò)apiserver proxy轉(zhuǎn)發(fā)集群內(nèi)部的service, 這樣我們就可以通過(guò) Master節(jié)點(diǎn)8080端口訪(fǎng)問(wèn)集群Node節(jié)點(diǎn)上運(yùn)行的nginx服務(wù)。

本示例為簡(jiǎn)單起見(jiàn),選擇了apiserver proxy來(lái)轉(zhuǎn)發(fā)集群內(nèi)Node節(jié)點(diǎn)的服務(wù)。用戶(hù)還可以設(shè)置其他方式訪(fǎng)問(wèn)Node節(jié)點(diǎn)上的服務(wù)。更多具體的Kubernetes的操作細(xì)節(jié),可以參考 Kubernetes 官方文檔。

第四步:安裝Kubnetes WebUI

此外,F(xiàn)IT2CLOUD還內(nèi)置了Kubernetes webUI addon的安裝腳本,只需要在Master節(jié)點(diǎn)上執(zhí)行一下 kube_ui_installer.sh腳本就可以激活安裝 kube-ui。

等待腳本執(zhí)行完畢,訪(fǎng)問(wèn)VPC路由器上綁定的公網(wǎng)IP(端口為8080),即http://<公網(wǎng)_IP>:8080/ui,就能看到部署成功的Kubernetes WebUI。其上會(huì)展示該集群的基本信息、當(dāng)前狀態(tài)等。

4.2、Kubernetes集群監(jiān)控

與前文所述,Kubernetes負(fù)責(zé)的是容器的創(chuàng)建、部署、監(jiān)控和伸縮,F(xiàn)IT2CLOUD負(fù)責(zé)的是VM(虛機(jī)/云主機(jī))的創(chuàng)建,部署,監(jiān)控和伸縮。FIT2CLOUD默認(rèn)系統(tǒng)監(jiān)控可以對(duì)Kubernetes集群的CPU、內(nèi)存、硬盤(pán)和網(wǎng)絡(luò)進(jìn)行監(jiān)控,也可以設(shè)定`自定義監(jiān)控指標(biāo),對(duì)Docker或者Containers做應(yīng)用級(jí)別的監(jiān)控。例如,可以監(jiān)控每臺(tái)KubernetesNode上的containers數(shù)量,方便以后基于Nodes節(jié)點(diǎn)的Containers數(shù)量來(lái)伸縮Nodes虛機(jī)。如下圖嘗試設(shè)置該自定義監(jiān)控。

將其應(yīng)用于Kubernetes Node虛機(jī)組(包括兩臺(tái)機(jī)器)上:

Kubernetes集群的Node節(jié)點(diǎn)已經(jīng)應(yīng)用了一個(gè)自定義監(jiān)控指標(biāo),現(xiàn)在可以嘗試啟動(dòng)50個(gè)nginx的容器,在Master節(jié)點(diǎn)執(zhí)行如下命令

kubectl run my-nginx --image=nginx --replicas=50 --port=80

等待幾分鐘后就可以在監(jiān)控面板上實(shí)時(shí)查看Kubernetes集群中每個(gè)Node上的container數(shù)量(如下圖所示):

除此之外,也可以在通過(guò)這個(gè)自定義監(jiān)控實(shí)現(xiàn)VM水平上的自動(dòng)伸縮,下面馬上會(huì)介紹如何利用FIT2CLOUD自定義監(jiān)控實(shí)現(xiàn)Kubernetes集群的自動(dòng)伸縮。

4.3、Kubernetes集群自動(dòng)伸縮設(shè)置

我們知道,kubectl scale 命令可以用來(lái)伸縮容器數(shù)量,實(shí)現(xiàn)容器(應(yīng)用)水平的伸縮,但是對(duì)于虛機(jī)水平的伸縮,Kubernetes自身無(wú)能為力,這就需要類(lèi)似FIT2CLOUD這樣的管理平臺(tái)來(lái)幫忙實(shí)現(xiàn)。FIT2CLOUD所做的虛機(jī)水平自動(dòng)伸縮,能保證Kubernetes集群中容器(應(yīng)用)水平的伸縮能夠不受限于節(jié)點(diǎn)數(shù)量和每個(gè)節(jié)點(diǎn)的配額限制,保證容器(應(yīng)用)的成功伸縮。

這里假設(shè)Kubernetes Nodes中的Pods/Containers的資源配額是40個(gè),通過(guò)FIT2CLOUD設(shè)定自定義監(jiān)控指標(biāo)監(jiān)控Nodes中的Containers數(shù)量。當(dāng)超過(guò)80%資源配額(40*80%=32個(gè))后,自動(dòng)創(chuàng)建一臺(tái)新的Kubernetes Nodes云主機(jī),并自動(dòng)部署后加入到集群之中;同理也可以設(shè)定當(dāng)每臺(tái)Nodes中的Pods/Containers平均數(shù)量小于一定數(shù)值時(shí),自動(dòng)回收云主機(jī),節(jié)約開(kāi)支。通過(guò)如此設(shè)置就能夠保證當(dāng)Kubernetes集群的負(fù)載達(dá)到資源配額上限前提前通過(guò)FIT2CLOUD擴(kuò)容云主機(jī)并加入集群,保證上層容器擴(kuò)容得以順利實(shí)施。當(dāng)突發(fā)負(fù)載發(fā)生并觸發(fā)Node節(jié)點(diǎn)的資源配額上限時(shí),同樣會(huì)觸發(fā)FIT2CLOUD自動(dòng)伸縮機(jī)制并擴(kuò)容云主機(jī)加入集群,然后由Kubernetes調(diào)度機(jī)制保證新加入云主機(jī)最終承擔(dān)相應(yīng)的負(fù)載。下面示例將演示突發(fā)負(fù)載這一場(chǎng)景。

現(xiàn)在假定已經(jīng)通過(guò)上述教程創(chuàng)建好了一個(gè)單Master節(jié)點(diǎn),3個(gè)Node節(jié)點(diǎn)的Kubernetes集群。接下來(lái)演示如何利用FIT2CLOUD自動(dòng)伸縮功能支持上層Kubernetes的彈性伸縮特性。

首先,在虛擬機(jī)組頁(yè)面,對(duì)Kubernetes Node節(jié)點(diǎn),設(shè)定自動(dòng)伸縮。

采用情景伸縮,針對(duì)我們上面所述自定義監(jiān)控指標(biāo),當(dāng)Node節(jié)點(diǎn)上的平均pod數(shù)量超過(guò)32個(gè)時(shí)擴(kuò)容一臺(tái)Node云主機(jī);當(dāng)其中Node節(jié)點(diǎn)上的平臺(tái)pod數(shù)量最小值小于20臺(tái)時(shí),縮容一臺(tái)Node云主機(jī),由Kubernetes自行將這一臺(tái)上已有的pod在其他Node上重新啟動(dòng)。具體設(shè)置如下:

其次,當(dāng)自動(dòng)伸縮設(shè)置完畢之后嘗試通過(guò)kubectl工具,把nginx pod總數(shù)擴(kuò)展到150臺(tái)。

kubectl scale rc my-nginx --replicas=150

觀(guān)察自動(dòng)伸縮情況,現(xiàn)在總共有3臺(tái)Node。當(dāng)pod總數(shù)突然擴(kuò)展到150臺(tái)時(shí),由于Kubernetes的默認(rèn)配額限制(每個(gè)節(jié)點(diǎn)pod數(shù)量不得超過(guò)40),現(xiàn)在每臺(tái)Node上最多運(yùn)行40個(gè)pods,總共3*40=120個(gè),無(wú)法滿(mǎn)足Kubernetes層擴(kuò)容到150臺(tái)的要求,如圖:

當(dāng)前總共有3臺(tái)Node

自定義監(jiān)控每臺(tái)Node上實(shí)際的pod數(shù)量

但是,這時(shí)平均每臺(tái)Node上會(huì)運(yùn)行40個(gè)pod,這會(huì)觸發(fā)40>32個(gè)pods的自動(dòng)伸縮條件,F(xiàn)IT2CLOUD自動(dòng)伸縮機(jī)制會(huì)擴(kuò)容一臺(tái)Node主機(jī),如圖所示:

系統(tǒng)已經(jīng)擴(kuò)展了一臺(tái)Node,新擴(kuò)展的節(jié)點(diǎn)通過(guò)虛機(jī)模板創(chuàng)建啟動(dòng),自動(dòng)會(huì)加入Kubernetes集群

新啟動(dòng)的Node節(jié)點(diǎn)加入Kubernetes集群后,Kubernetes會(huì)自動(dòng)把前面未成功scale的30個(gè)containers調(diào)度到該臺(tái)Node節(jié)點(diǎn)運(yùn)行。在FIT2CLOUD中查看之前創(chuàng)建的自定義監(jiān)控指標(biāo)“podsNum”即可觀(guān)察到這一點(diǎn)。

五、總結(jié)

Kubernetes代表著目前最先進(jìn)的容器管理系統(tǒng),但是它作為PaaS(容器云)與IaaS(或者Bare-Metal物理機(jī))之間還需要FIT2CLOUD對(duì)其進(jìn)行運(yùn)維管理。FIT2CLOUD可以幫助類(lèi)似Kubernetes這樣的PaaS(容器云)更好在云環(huán)境中使用。Kubernetes+FITCLOUD+QingCloud可以讓用戶(hù)非??焖俜€(wěn)定地從底至頂搭建一套容器管理系統(tǒng)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/32424.html

相關(guān)文章

  • 一體數(shù)科姚欣銳:車(chē)聯(lián)網(wǎng)云平臺(tái)構(gòu)建實(shí)踐

    摘要:下文是一體數(shù)科運(yùn)維工程師姚欣銳在沙龍現(xiàn)場(chǎng)演講速記整理。目前一體數(shù)科的產(chǎn)品有等多種終端設(shè)備,通過(guò)這種車(chē)載的終端可以收集車(chē)輛的數(shù)據(jù),把駕駛行為油耗等等數(shù)據(jù)收集到統(tǒng)一的平臺(tái)中。 在新一輪的創(chuàng)新浪潮中,物聯(lián)網(wǎng)正在高速發(fā)展。由于物聯(lián)網(wǎng)行業(yè)的特殊性以及設(shè)備數(shù)量的爆炸式增長(zhǎng),對(duì)物聯(lián)網(wǎng)的IT服務(wù)架構(gòu)提出了更高的要求。得力于云計(jì)算對(duì)地理分散的各種設(shè)備協(xié)同合作的良好支持,物聯(lián)網(wǎng)的云端化成為常態(tài)。將各種設(shè)備...

    ConardLi 評(píng)論0 收藏0
  • 關(guān)于容器,你不能不看這篇

    摘要:其次,青云的負(fù)載均衡器能感知到容器網(wǎng)絡(luò),而傳統(tǒng)的方案在內(nèi)部還需要再做一層虛擬網(wǎng)絡(luò),層的負(fù)載均衡器無(wú)法感知容器網(wǎng)絡(luò)。 前言 容器技術(shù)目前的市場(chǎng)現(xiàn)狀是一家獨(dú)大、百花齊放。 關(guān)于容器技術(shù),看看青云QingCloud 王淵命(老王)是如何看待它的,本文來(lái)自他在青云QingCloud 深圳站實(shí)踐課堂的演講。全文 2780字,閱讀時(shí)長(zhǎng)約為 11 分鐘。 容器是什么 容器的概念外延比較廣,討論的時(shí)候...

    zzzmh 評(píng)論0 收藏0
  • 青云QingCloud 鏡像倉(cāng)庫(kù)上線(xiàn)|最強(qiáng) IaaS 驅(qū)動(dòng)下的完整容器平臺(tái)

    摘要:同時(shí),得益于青云平臺(tái)彈性可擴(kuò)展的特性,部署于虛擬主機(jī)之上的容器平臺(tái)也將隨之獲得靈活伸縮的能力,用戶(hù)可以對(duì)整個(gè)系統(tǒng)進(jìn)行橫向及縱向的彈性伸縮操作。 1956 年 4 月 26 日,一架起重機(jī)把 58 個(gè)鋁制卡車(chē)車(chē)廂裝到了一艘停泊在港內(nèi)的老油輪上,誰(shuí)也不會(huì)想到,一場(chǎng)革命就這么開(kāi)始。集裝箱的誕生,讓貨物的運(yùn)輸成本大大降低,也讓原本混亂的運(yùn)輸環(huán)境,變得整潔有序,整個(gè)物流體系更加高效,最終改變了世...

    AlienZHOU 評(píng)論0 收藏0
  • 人工智能幫助千萬(wàn)用戶(hù)完成「隱形征信」計(jì)算

    摘要:量化派是一家數(shù)據(jù)驅(qū)動(dòng)的科技金融公司,通過(guò)人工智能大數(shù)據(jù)機(jī)器學(xué)習(xí)等前沿技術(shù)提供消費(fèi)信貸撮合及消費(fèi)場(chǎng)景下的白條服務(wù),每年處理千萬(wàn)級(jí)用戶(hù)信用及信用消費(fèi)申請(qǐng)。 「小楊」最近裝修房子,準(zhǔn)備去銀行貸款,但是聽(tīng)說(shuō)好多人會(huì)因?yàn)閭€(gè)人征信問(wèn)題被銀行拒絕貸款!于是,他先查了一下自己的央行征信,發(fā)現(xiàn)竟然沒(méi)有自己的征信信息,「小楊」陷入了沉思,自己經(jīng)常在淘寶、jd 上買(mǎi)東西,也有淘寶花唄和京東白條,怎么會(huì)沒(méi)有征...

    Developer 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<