利用K8S助力OpenStack生產(chǎn)環(huán)境部署簡要分析

問題:

????openstack與k8s組合一直是個頭疼的問題酪呻,特別是利用k8s去部署openstack環(huán)境挑胸。由于openstack是一套iaas杖们,與服務(wù)器硬件、系統(tǒng)軟件交互較多袜腥,本身的部署也要花大量的心思去設(shè)計一套方案见擦,拿社區(qū)的部署工具,即使是fuel羹令,也無法滿足真正的生產(chǎn)需求锡宋。如何將openstack服務(wù)容器化,利用k8s真正做到快速部署特恬,一直是個難題。

難點解決:

? ? Q1:如何完成openstack依賴組件(如mysql徐钠、rabbitmq)的部署癌刽?? A:建議在沒有專業(yè)團(tuán)隊維護(hù)的情況下,還是不要容器化尝丐,這些服務(wù)內(nèi)部有自身高可用設(shè)計显拜,且為非無狀態(tài)服務(wù),暴力不可取爹袁。

? ? Q2:如何規(guī)劃k8s網(wǎng)絡(luò)插件及node間組網(wǎng)远荠? A:由于生產(chǎn)環(huán)境的openstack也有sdn,網(wǎng)絡(luò)復(fù)雜失息,最簡單的方法譬淳,就是不依靠插件,完全使用hostnet的方法盹兢。暴露物理機(jī)網(wǎng)絡(luò)給pod邻梆,以便服務(wù)能夠訪問管理、業(yè)務(wù)绎秒、存儲三個網(wǎng)絡(luò)浦妄。

????Q3:服務(wù)負(fù)載均衡設(shè)計? A:負(fù)載均衡不依賴K8S见芹,還是繼續(xù)使用HAProxy+KeepAlived的方案剂娄。與web pod服務(wù)不用,生產(chǎn)環(huán)境會詳細(xì)規(guī)劃方案玄呛,具體服務(wù)落到哪些節(jié)點都是固定的阅懦。另外不用service,減輕網(wǎng)絡(luò)插件帶來的不穩(wěn)定性把鉴。

? ? Q4:如何同步數(shù)據(jù)庫和創(chuàng)建keystone中的認(rèn)證信息故黑? A:這里利用一個restartPolicy為Never的POD(取名為bootstrap)儿咱,啟動后執(zhí)行腳本完成操作。

????Q5:需要使用的POD的kind類型场晶? A:api服務(wù)使用daemonset混埠,保證落到對應(yīng)的標(biāo)簽;rpc服務(wù)使用deployment诗轻,方便伸縮钳宪;nova-compute、ironic-conductor這種依賴hostname服務(wù)扳炬,也應(yīng)該使用daemonset吏颖。

? ? Q6:服務(wù)運行日志怎么辦? A:日志一律掛在主機(jī)的/var/log/openstack下恨樟,方便查看和ELK分析半醉。

? ??Q7:openstack配置文件怎么修改? A:由于同一pod不同node下的容器組件配置文件可能還是不同的劝术,設(shè)計了一個config節(jié)點缩多,容器啟動后利用腳本拉取conf文件模板,并進(jìn)行修改养晋。

設(shè)計:

K8S YAML設(shè)計(以具有代表性的cinder為例) :

cinder-bootstrap.yaml

bootstrap服務(wù)用于同步數(shù)據(jù)庫及創(chuàng)建endpoint衬吆,需要與管理網(wǎng)通信,label選擇只有管理網(wǎng)的core绳泉,運行一次即可逊抡。

cinder-api.yaml

cinder-api服務(wù)需要與管理網(wǎng)通信,label選擇有管理網(wǎng)的core零酪,使用DaemonSet冒嫡。

cinder-volume.yaml

cinder-volume服務(wù)與存儲網(wǎng)通信,label選擇有管理四苇、業(yè)務(wù)灯谣、存儲三網(wǎng)的business,使用Deployment蛔琅。

DockerFile設(shè)計(和上述cinder對應(yīng)):

cinder-bootstrap/Dockerfile:

cinder-bootstrap.sh即為拉取配置模板胎许,同步數(shù)據(jù)庫,創(chuàng)建keystone信息的腳本罗售,不展示了辜窑,點到為止。

cinder-api/Dockerfile:

cinder-api.sh即為拉取配置模板寨躁,改修配置文件穆碎,執(zhí)行cinder-api命令的腳本。

生產(chǎn)環(huán)境設(shè)計:

????這是一個ironic環(huán)境的方案(部分線段沒有畫完)职恳∷鳎可以看到方面,k8s-api周圍是部署時所需的網(wǎng)絡(luò)(電口),生產(chǎn)環(huán)境運行是可以去掉的色徘,即整個openstack環(huán)境不依賴該k8s節(jié)點是否正常恭金。

總結(jié):

設(shè)計優(yōu)勢

1.?部署、恢復(fù)速度快:準(zhǔn)備好非openstack組件外(mysql褂策、rabbitmq横腿、haproxy、keepalived等)斤寂,使用k8s的pod耿焊、deployment、daemonset實現(xiàn)自動化部署和高速回溯遍搞。

2.?服務(wù)及主機(jī)監(jiān)控:主機(jī)信息(cpu罗侯、內(nèi)存、文件系統(tǒng)溪猿、網(wǎng)絡(luò))使用kubelet的cAdvisor監(jiān)控歇父,通過web展示;openstack服務(wù)使用heapster監(jiān)控再愈,通過k8s dashboard展示,方便運維护戳。

3. 服務(wù)高可用翎冲、彈性伸縮、快速擴(kuò)容:openstack進(jìn)程服務(wù)使用k8s的failover機(jī)制(包括容器異常重啟及故障遷移)媳荒,彈性伸縮改進(jìn)了例如nova-scheduler抗悍、cinder-volume這些依賴rpc服務(wù)的高可用方式,daemonset負(fù)責(zé)API節(jié)點以及nova-compute钳枕、ironic-conductor節(jié)點的快速擴(kuò)容缴渊。

4.?可視化容器倉庫及滾動升級:使用harbor作為容器提供,提供portal界面鱼炒;k8s的滾動升級能夠在盡可能保證服務(wù)的情況下衔沼,逐步升級版本。

5. Config配置文件節(jié)點:所有配置文件放在同一目錄下昔瞧,使用git控制版本指蚁,k8s重建服務(wù)即可更新配置。

6.?日志分析:所有openstack日志都放在控制節(jié)點的/var/log/openstack下自晰,使用logstash的daemonset凝化,配合es、kibana分析酬荞,快速定位問題搓劫。

7.?CICD:修改配置文件{通過修改config節(jié)點配置文件->git commit->k8s重建服務(wù)}瞧哟;版本升級{新版本rpm包更新至源->運維節(jié)點生成最新容器鏡像、打tag枪向、上傳至harbor倉庫->k8s滾動升級}勤揩;錯誤回退{(lán)k8s能夠滾動回退到歷史版本}。

缺點

比較適合生產(chǎn)環(huán)境遣疯,測試環(huán)境調(diào)試代碼比較繁瑣雄可。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市缠犀,隨后出現(xiàn)的幾起案子数苫,更是在濱河造成了極大的恐慌,老刑警劉巖辨液,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件虐急,死亡現(xiàn)場離奇詭異,居然都是意外死亡滔迈,警方通過查閱死者的電腦和手機(jī)止吁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來燎悍,“玉大人敬惦,你說我怎么就攤上這事√干剑” “怎么了俄删?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長奏路。 經(jīng)常有香客問我畴椰,道長,這世上最難降的妖魔是什么鸽粉? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任斜脂,我火速辦了婚禮,結(jié)果婚禮上触机,老公的妹妹穿的比我還像新娘帚戳。我一直安慰自己,他們只是感情好儡首,可當(dāng)我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布销斟。 她就那樣靜靜地躺著,像睡著了一般椒舵。 火紅的嫁衣襯著肌膚如雪蚂踊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天笔宿,我揣著相機(jī)與錄音犁钟,去河邊找鬼棱诱。 笑死,一個胖子當(dāng)著我的面吹牛涝动,可吹牛的內(nèi)容都是我干的迈勋。 我是一名探鬼主播,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼醋粟,長吁一口氣:“原來是場噩夢啊……” “哼靡菇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起米愿,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤厦凤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后育苟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體较鼓,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年违柏,在試婚紗的時候發(fā)現(xiàn)自己被綠了博烂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡漱竖,死狀恐怖禽篱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情馍惹,我是刑警寧澤躺率,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站讼积,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏脚仔。R本人自食惡果不足惜勤众,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鲤脏。 院中可真熱鬧们颜,春花似錦、人聲如沸猎醇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽硫嘶。三九已至阻问,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間沦疾,已是汗流浹背称近。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人佃乘。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓份蝴,卻偏偏與公主長得像,于是被迫代替她去往敵國和親衡未。 傳聞我的和親對象是個殘疾皇子尸执,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 第一章 OpenStack基礎(chǔ) OpenStack管理的資源及提供的服務(wù)OpenStack做為一個操作系統(tǒng),...
    sgt_tiger閱讀 12,948評論 4 72
  • OpenStack簡介 OpenStack版本發(fā)展 OpenStack版本系列字母以A~Z命名缓醋,從2010年發(fā)布的...
    糯米藕閱讀 5,047評論 0 17
  • kubernetes 簡介 一個迅速過一遍kubernetes 非常不錯的資源:基于Kubernetes構(gòu)建Doc...
    bradyjoestar閱讀 15,289評論 2 7
  • ROS采用rosrun命令可以啟動一個節(jié)點如失,如果需要同時啟動節(jié)點管理器(master)和多個節(jié)點,就需要采用lau...
    marine0131閱讀 12,138評論 0 0
  • 在iOS中,系統(tǒng)自帶的正則類是 NSRegularExpression 初始化 使用實例: 輸出 從中我們可以看...
    yohunl閱讀 1,283評論 0 2