在AWS中部署OpenShift平臺

OpenShift是RedHat出品的PAAS平臺岳掐。OpenShift做為PAAS平臺最大的特點是它是完全容器化的PAAS平臺魔吐,底層封裝了Docker和Kubernetes航缀,上層暴露了對開發(fā)者友好的接口來完成對應用程序的集成序调、部署芳誓、彈性伸縮等任務余舶。

Docker提供了對打包和創(chuàng)建基于Linux的輕量級容器的抽象。而Kubernetes提供了多主機集群管理和Docker容器編排兆沙。OpenShift基于Docker和Kubernetes加入了新的功能:

  • 源代碼管理欧芽、構(gòu)建和部署
  • 在系統(tǒng)中集成鏡像的管理
  • 按需擴展的應用程序管理
  • 在大型開發(fā)者組織中進行團隊管理和用戶追蹤

OpenShift直接提供支持的應用程序鏡像有:

OpenShift直接提供支持的數(shù)據(jù)庫鏡像有:

除此之外,OpenShift還讓你通過一鍵點擊便生成相應的應用葛圃,比如幾秒之內(nèi)搭建好一個Jenkins服務千扔。包括以下:

OpenShift架構(gòu)概覽

從上圖可以看出憎妙,OpenShift的典型用戶分為兩種,開發(fā)人員和運維人員曲楚。開發(fā)人員可以通過現(xiàn)有的代碼管理工具和持續(xù)集成厘唾、交付工具利用OpenShift完成對應用程序的打包、部署龙誊、擴容操作抚垃。而運維人員可以利用現(xiàn)有的自動化工具實現(xiàn)對OpenShift平臺的維護。

OpenShift中的Kubernetes用來管理跨宿主機(或容器)的容器化應用程序趟大,并提供部署鹤树、維護和應用程序擴容機制。對于一個Kubernetes集群來說逊朽,它包括一個或多個master以及一組node罕伯。

Master主機托管了API服務器、controller manager服務器以及etcd實例叽讳。Master管理Kubernetes集群中的節(jié)點并控制運行在節(jié)點上的pod追他。

Node則提供了容器的運行時環(huán)境。Kubernetes節(jié)點中的每個node會運行受Master管理的服務岛蚤,當然也包括Docker邑狸、Kubelet及serverice proxy服務。node可以為云機器涤妒、物理系統(tǒng)或者虛擬系統(tǒng)单雾。Kubelet用來更新node上的運行的容器狀態(tài)。Service Proxy用于運行一個簡單的網(wǎng)絡代理届腐,來反映定義在node的API中的服務铁坎,從而使node可以跨后端進行簡單的TCP和UDP流轉(zhuǎn)發(fā)。

OpenShift架設要求

如果想自己架設OpenShift平臺作為商業(yè)用途犁苏,必須要獲取OpenShift Enterprise的付費訂閱硬萍。目前OpenShift Enterprise的最新版本為3.6版。對于Master和Node節(jié)點的系統(tǒng)要求如下围详。

Master:

  • 物理或虛擬機朴乖,或者運行于公有云或私有云之上的實例
  • 基礎操作系統(tǒng)為Red Hat企業(yè)版Linux(RHEL)7.1,并包含最小的安裝選項
  • 2核CPU
  • 最小8GB內(nèi)存
  • 最小30GB硬盤空間

Node:

  • 物理或虛擬機助赞,或者運行于公有云或私有云之上的實例
  • 基礎操作系統(tǒng)為Red Hat企業(yè)版Linux(RHEL)7.1买羞,并包含最小的安裝選項
  • Docker 1.6.2及以上版本
  • 1核CPU
  • 最小8GB內(nèi)存
  • 最小15GB硬盤空間
  • 另外最小15GB的未分配空間,需要通過docker-storage-setup進行配置

環(huán)境要求:

  • 需要一個DNS zone來解析OpenShift router的IP地址雹食。比如*.cloudapps.example.com. 300 IN A 192.168.133.2
  • Master和Node之間必須要有共享的網(wǎng)絡畜普,兩者之間可以互相通訊。
  • 需要一個Git Server和能夠訪問該Server的賬號群叶。

AWS中部署OpenShift平臺

下圖是一個在AWS中的OpenShift集群的示例吃挑。

{% img /images/refarch-ocp-on-aws-v3.png 700 %}

  • Master節(jié)點:包含3個Master實例钝荡,實現(xiàn)高可用,上面運行etcd舶衬、通過一個external load balancer向外暴露服務埠通。

  • Infra Node: 由三個實例組成,這三個實例用來運行支撐OpenShift集群服務的一系列容器逛犹。

  • App Node:用于運行應用程序容器的實例端辱,可以按需進行擴展。

  • Bastion:用于限制對集群中實例的ssh訪問虽画,增強安全性舞蔽。

  • 存儲:OpenShift使用EBS作為實例的文件系統(tǒng)并用于持久化容器的存儲;另外還使用S3這個對象存儲服務作為OpenShift registry的存儲狸捕。
    ELB:總共有三個.一個用來在集群外訪問OpenShift API喷鸽、OpenShift console众雷。一個在集群內(nèi)訪問OpenShift API灸拍。另一個用來訪問通過route暴露的部署在集群中的應用程序服務。最后通過AWS的Route53來管理DNS砾省。

部署OpenShift集群的三個階段

在AWS中部署OpenShift集群包括三個階段:

  • 第一階段:在AWS中設置好基礎設施
  • 第二階段: 在AWS上部署OpenShift Container平臺
  • 第三階段: 部署后的環(huán)境檢查

關(guān)于整個部署活動絕大多數(shù)都是可以自動化的鸡岗。RedHat提供了一個GitHub repo:openshift-ansible-contrib。openshift-ansible-contrib提供了將OpenShift集群部署到不同的Cloud供應商的解決方案编兄,當然也包括了AWS轩性。里面包含了相應的文檔、代碼以及腳本狠鸳。RedHat提供了一個叫做openshift-ansible-playbooks的RPM包揣苏,openshift-ansible-contrib利用該RPM包來完成階段1和階段2,在階段3中我們可以利用一些現(xiàn)有的腳本工具實現(xiàn)環(huán)境檢查和認證件舵。

對AWS環(huán)境的要求

選擇部署的AWS區(qū)域需要至少有三個可用區(qū)以及2個EIP卸察。該OpenShift平臺需要新建三個公共子網(wǎng)和三個私有子網(wǎng)。
由于需要新建一大批的AWS資源铅祸,所以必須要提供一個有適當權(quán)限的AWS用戶坑质,包括創(chuàng)建賬號、使用S3临梗、Route53涡扼、ELB、EC2等盟庞。

六個子網(wǎng)需要在一個VPC中吃沪。Ansible腳本會建立一個NAT Gateway用來供內(nèi)部的EC2實例訪問外網(wǎng)。同時也會建立8個Security Groups來限制不同的實例什猖、ELB和外部網(wǎng)絡間的訪問票彪。

openshift-ansible-contrib提供了部署基礎設施萎津、安裝和配置OpenShift以及擴展router和registry的功能。運行Ansible的機器必須是RHEL7操作系統(tǒng)抹镊。具體的安裝過程可參見https://access.redhat.com/documentation/en-us/reference_architectures/2017/html/deploying_openshift_container_platform_3.5_on_amazon_web_services/deploying_openshift锉屈。

安裝完畢后的環(huán)境檢查可以參見https://access.redhat.com/documentation/en-us/reference_architectures/2017/html/deploying_openshift_container_platform_3.5_on_amazon_web_services/operational-management

總結(jié)

在AWS上部署OpenShift平臺并不是一件輕松的事情垮耳,一方面需要對AWS的各種服務了如執(zhí)掌颈渊,一方面也需要對OpenShift的架構(gòu)和核心概念有所了解。雖然RedHat提供了一些Ansible腳本和RPM包來簡化安裝终佛,但整個過程也絕非一片坦途俊嗽。安裝完備之后,如何和企業(yè)現(xiàn)有的應用程序開發(fā)流程铃彰、持續(xù)交付流水線結(jié)合起來無縫過度绍豁,也是一件非常考驗人的事情牙捉。下一篇文章會對這些方面進行揭秘竹揍。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市邪铲,隨后出現(xiàn)的幾起案子芬位,更是在濱河造成了極大的恐慌,老刑警劉巖带到,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昧碉,死亡現(xiàn)場離奇詭異,居然都是意外死亡揽惹,警方通過查閱死者的電腦和手機被饿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來搪搏,“玉大人狭握,你說我怎么就攤上這事∧饺拢” “怎么了哥牍?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長喝检。 經(jīng)常有香客問我嗅辣,道長,這世上最難降的妖魔是什么挠说? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任澡谭,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蛙奖。我一直安慰自己潘酗,他們只是感情好,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布雁仲。 她就那樣靜靜地躺著仔夺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪攒砖。 梳的紋絲不亂的頭發(fā)上缸兔,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天,我揣著相機與錄音吹艇,去河邊找鬼惰蜜。 笑死,一個胖子當著我的面吹牛受神,可吹牛的內(nèi)容都是我干的抛猖。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼鼻听,長吁一口氣:“原來是場噩夢啊……” “哼财著!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起精算,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤瓢宦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后灰羽,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡鱼辙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年廉嚼,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片倒戏。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡怠噪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出杜跷,到底是詐尸還是另有隱情傍念,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布葛闷,位于F島的核電站憋槐,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏淑趾。R本人自食惡果不足惜阳仔,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望扣泊。 院中可真熱鬧近范,春花似錦嘶摊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至斥杜,卻和暖如春蹂空,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背果录。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工上枕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人弱恒。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓辨萍,卻偏偏與公主長得像,于是被迫代替她去往敵國和親返弹。 傳聞我的和親對象是個殘疾皇子锈玉,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

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

  • Kubernetes作為容器應用的管理中心,通過對Pod的數(shù)量進行監(jiān)控义起,并且根據(jù)主機或容器失效的狀態(tài)將新的Pod調(diào)...
    輝耀輝耀閱讀 4,612評論 0 13
  • 這篇博客中我們將比較Kubernetes與Mesos + Marathon容器編排解決方案拉背。我們將深入的討論Kub...
    shangyaqi閱讀 17,114評論 0 18
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)默终,斷路器椅棺,智...
    卡卡羅2017閱讀 134,707評論 18 139
  • 我們都是 我們都是沒人要的 野孩子 在草地、雪山 自由生長 我們都是“壞”孩子 我們無人取代 你屬于孤獨 我即是寂...
    散夏無淚閱讀 153評論 0 2
  • 面對1月份儲蓄存款同業(yè)落后的嚴峻形勢齐蔽,支行在1月29日两疚、2月2日相繼出臺了旺季兩項存款考核辦法,2月6日支行...
    工行仙桃閱讀 812評論 0 2