日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2024/4/17 编程问答 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用FIT2CLOUD在青云QingCloud快速部署和管理Kubernetes集群 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、Kubernetes概述

Kubernetes是Google一直在推進(jìn)的容器調(diào)度和管理系統(tǒng),是Google內(nèi)部使用的容器管理系統(tǒng)Borg的開源版本。它可以實(shí)現(xiàn)對(duì)Docker容器的部署,配置,伸縮和監(jiān)控等。當(dāng)下,Kubernetes絕對(duì)是最火熱的開源工程之一,在短短的一年多時(shí)間里,其Github工程已有接近兩萬次的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容器的互通訪問。下圖是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方式部署,單獨(dú)一臺(tái)Slave機(jī)器稱為一個(gè)Node(以前叫 Minion)。

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

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

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

  • Labels:K/V鍵值對(duì),用來標(biāo)記Kubernetes組件的類別關(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è)組件多且依賴復(fù)雜的系統(tǒng)(上圖僅僅是單Master,三臺(tái)Node的情況。目前,Kubernetes已經(jīng)支持Multi-Masters的部署架構(gòu),即需要至少三臺(tái)主機(jī)作為Master)。并且Kubernetes社區(qū)開發(fā)速度非???#xff0c;版本差異大,文檔更新往往不及時(shí)。所以,如果需要完整部署測(cè)試仍然有不少的工作量。如果要在生產(chǎn)中使用它,其運(yùn)維管理也有較高的門檻。這里,我們將詳細(xì)介紹如何使用FIT2CLOUD幫助用戶高效完成Kubernetes的系統(tǒng)部署、日常運(yùn)維等,降低用戶使用它的難度。

二、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è)因素:

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

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

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

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

最后,從目標(biāo)用戶視角看,Kubernetes集群(容器云)的使用者是應(yīng)用開發(fā)人員,或者準(zhǔn)確的講是基于Docker容器的微服務(wù)開發(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ò)隔離,并且用戶在其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,之后通過綁定公網(wǎng)IP和端口映射將KubernetesMaster節(jié)點(diǎn)的apiserver endpoint暴露出來。具體部署架構(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í),需打開該虛擬路由器所用防火墻下行8080端口。因?yàn)樵摱丝趯⒃诤竺嬗糜谙蛲獗┞禟ubernetes服務(wù)接口。

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

  • 在VPC內(nèi)建立一個(gè)負(fù)載均衡器(LoadBalancer),并為其在8080端口負(fù)載均衡器的監(jiān)聽器來監(jiān)聽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)建配置完成,就可以開始通過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)。具體步驟如下所示:

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

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

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

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

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

    “虛機(jī)創(chuàng)建模板”是FIT2CLOUD內(nè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è)試通過,在本示例中無論是Master節(jié)點(diǎn)還是Salve節(jié)點(diǎn)都請(qǐng)選擇CentOS 7.0操作系統(tǒng)),分別如下:

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

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

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

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

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

    • 第一點(diǎn):如上圖可見,創(chuàng)建虛機(jī)模版時(shí)可以在初始化操作中執(zhí)行腳本,這里選擇Kubernetes Master節(jié)點(diǎn)的安裝部署腳本k8s_master_installer.sh。如希望了解Master節(jié)點(diǎn)的部署流程,請(qǐng)倉庫該腳本內(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外部,方便用戶從VPC外部通過公網(wǎng)IP控制Kubernetes集群。同時(shí),集群上運(yùn)行的真正負(fù)載Service也可以由此通過apiserver proxy供外部訪問。該設(shè)置如下圖所示:

    其次,設(shè)置Node節(jié)點(diǎn)的“創(chuàng)建虛機(jī)模板”。和Master節(jié)點(diǎn)類似,設(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ì)外暴露端口,而是通過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工具通過虛機(jī)組名稱"k8s-master"來獲取集群中Master節(jié)點(diǎn)的內(nèi)網(wǎng)IP信息,這也是為什么前面創(chuàng)建Master節(jié)點(diǎn)虛機(jī)組名稱必須為"k8s-master"的原因。當(dāng)然,理論上只需要保持腳本內(nèi)和虛機(jī)組定名稱一致即可,不一定必須是"k8s-master"。

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

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

    完成上述配置之后,我們就可以回到控制臺(tái)虛機(jī)頁面,按順序啟動(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)上線(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í)候我們就可以開始測(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: 3selector:app: nginxtemplate:metadata:name: nginxlabels:app: nginxspec:containers:- name: nginximage: index.alauda.cn/library/nginx:latestports:- 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: nginxservicename: nginxservice spec:ports:- port: 80selector:app: nginx ? k8s kubectl create -f nginx-svc.yaml services/nginxservice

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

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

    第四步:安裝Kubnetes WebUI

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

    等待腳本執(zhí)行完畢,訪問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)控和伸縮,FIT2CLOUD負(fù)責(zé)的是VM(虛機(jī)/云主機(jī))的創(chuàng)建,部署,監(jiān)控和伸縮。FIT2CLOUD默認(rèn)系統(tǒng)監(jiān)控可以對(duì)Kubernetes集群的CPU、內(nèi)存、硬盤和網(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ù)量來伸縮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ù)量(如下圖所示):

    除此之外,也可以在通過這個(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 命令可以用來伸縮容器數(shù)量,實(shí)現(xiàn)容器(應(yīng)用)水平的伸縮,但是對(duì)于虛機(jī)水平的伸縮,Kubernetes自身無能為力,這就需要類似FIT2CLOUD這樣的管理平臺(tá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è),通過FIT2CLOUD設(shè)定自定義監(jiān)控指標(biāo)監(jiān)控Nodes中的Containers數(shù)量。當(dāng)超過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é)約開支。通過如此設(shè)置就能夠保證當(dāng)Kubernetes集群的負(fù)載達(dá)到資源配額上限前提前通過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)通過上述教程創(chuàng)建好了一個(gè)單Master節(jié)點(diǎn),3個(gè)Node節(jié)點(diǎn)的Kubernetes集群。接下來演示如何利用FIT2CLOUD自動(dòng)伸縮功能支持上層Kubernetes的彈性伸縮特性。

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

  • 采用情景伸縮,針對(duì)我們上面所述自定義監(jiān)控指標(biāo),當(dāng)Node節(jié)點(diǎn)上的平均pod數(shù)量超過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è)置完畢之后嘗試通過kubectl工具,把nginx pod總數(shù)擴(kuò)展到150臺(tái)。

  • kubectl scale rc my-nginx --replicas=150

    觀察自動(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ù)量不得超過40),現(xiàn)在每臺(tái)Node上最多運(yùn)行40個(gè)pods,總共3*40=120個(gè),無法滿足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)伸縮條件,FIT2CLOUD自動(dòng)伸縮機(jī)制會(huì)擴(kuò)容一臺(tái)Node主機(jī),如圖所示:

    系統(tǒng)已經(jīng)擴(kuò)展了一臺(tái)Node,新擴(kuò)展的節(jié)點(diǎn)通過虛機(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”即可觀察到這一點(diǎn)。

    五、總結(jié)

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

    總結(jié)

    以上是生活随笔為你收集整理的使用FIT2CLOUD在青云QingCloud快速部署和管理Kubernetes集群的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。