摘要:從開(kāi)始,部署管理的集群時(shí),默認(rèn)情況下會(huì)啟用授權(quán)群集端點(diǎn)功能。我們將首先在中創(chuàng)建一個(gè)新項(xiàng)目,該項(xiàng)目將使用功能與我們的集群集成。完成后單擊創(chuàng)建項(xiàng)目。這不僅意味著已被設(shè)為默認(rèn)值,還能夠觸發(fā)構(gòu)建。例如,負(fù)載均衡選項(xiàng)卡顯示已部署的以及創(chuàng)建的主機(jī)名。
介 紹
在這篇文章中,我們將介紹如何將GitLab的Auto DevOps功能與Rancher管理的Kubernetes集群連接起來(lái),利用Rancher v2.2.0中引入的授權(quán)集群端點(diǎn)的功能。通過(guò)本文,你將能全面了解GitLab如何與Kubernetes集成,以及Rancher如何使用授權(quán)集群端點(diǎn)簡(jiǎn)化這一集成工作的流程。本文非常適合Kubernetes管理員、DevOps工程師,或任何想將其開(kāi)發(fā)工作流與Kubernetes進(jìn)行集成的人。
背 景 什么是GitLab Auto DevOps?Auto DevOps是在GitLab 10.0中引入的功能,它讓用戶可以設(shè)置自動(dòng)檢測(cè)、構(gòu)建、測(cè)試和部署項(xiàng)目的DevOps管道。將GitLab Auto DevOps與Kubernetes集群配合使用,這意味著用戶可以無(wú)需配置CI / CD資源和其他工具,即可以部署應(yīng)用程序。
什么是Rancher的授權(quán)集群端點(diǎn)?從v2.2.0開(kāi)始,Rancher引入了一項(xiàng)名為Authorized Cluster Endpoint的新功能,用戶可以直接訪問(wèn)Kubernetes而無(wú)需通過(guò)Rancher進(jìn)行代理。在v2.2.0之前,如果要直接與下游Kubernetes集群通信,用戶必須從各個(gè)節(jié)點(diǎn)手動(dòng)檢索kubeconfig文件以及API服務(wù)器地址。這不僅增加了操作的復(fù)雜度,而且還沒(méi)有提供一種機(jī)制來(lái)控制通過(guò)Rancher管理集群時(shí)可用的細(xì)化權(quán)限。
從Rancher v2.2.0開(kāi)始,部署Rancher管理的集群時(shí),默認(rèn)情況下會(huì)啟用授權(quán)群集端點(diǎn)(ACE)功能。ACE將部分Rancher身份驗(yàn)證和授權(quán)機(jī)制推送到下游Kubernetes集群,允許Rancher用戶直接連接到這些集群,同時(shí)仍遵守安全策略。
如果您已為某些項(xiàng)目中的某個(gè)用戶明確授予了權(quán)限,則當(dāng)該用戶使用授權(quán)集群端點(diǎn)進(jìn)行連接時(shí),這些權(quán)限能自動(dòng)生效應(yīng)用。現(xiàn)在,無(wú)論用戶是通過(guò)Rancher還是直接連接到Kubernetes集群,安全性都能得到保障。
授權(quán)集群端點(diǎn)功能的相關(guān)文檔對(duì)此有更詳細(xì)的說(shuō)明:
https://rancher.com/docs/ranc...
注意前期準(zhǔn)備目前,授權(quán)集群端點(diǎn)功能暫時(shí)僅適用于使用Rancher Kubernetes Engine(RKE)啟動(dòng)的下游Kubernetes進(jìn)群。
要將GitLab Auto DevOps與Rancher管理的Kubernetes集群進(jìn)行對(duì)接,您需要實(shí)現(xiàn)準(zhǔn)備好:
一個(gè)GitLab.com帳戶,或一個(gè)自托管GitLab實(shí)例上的帳戶(需已啟用Auto
DevOps):GitLab.com帳戶需要已經(jīng)配置好了Auto
DevOps。如果您使用的是自托管GitLab實(shí)例,則可以參考這一GitLab文檔了解如何啟用Auto
DevOps:https://docs.gitlab.com/ee/to...
運(yùn)行版本v2.2.0或更高版本的Rancher實(shí)例:您可以以單節(jié)點(diǎn)模式啟動(dòng)Rancher(https://rancher.com/quick-start/),也可以創(chuàng)建HA安裝(https://rancher.com/docs/ranc...)。
Rancher管理的Kubernetes集群:您還需要一個(gè)通過(guò)RKE配置的、Rancher上管理的集群。此外,集群中需要有一個(gè)管理員用戶,如果您使用的是GitLab.com,則需要通過(guò)公共網(wǎng)絡(luò)訪問(wèn)控制平面節(jié)點(diǎn)。
設(shè)置Rancher和Kubernetes首先,我們需要先將Rancher和Kubernetes設(shè)置好。該過(guò)程的第一部分主要涉及收集信息。
注意為簡(jiǎn)單起見(jiàn),這些步驟使用的是Rancher中默認(rèn)的admin帳戶。最佳實(shí)踐要求您使用獨(dú)立用戶執(zhí)行此類過(guò)程,并限制該用戶對(duì)正在集成GitLab的集群的權(quán)限。
登錄Rancher并導(dǎo)航到要集成的下游集群。在本演示中,我們將在EC2實(shí)例上創(chuàng)建一個(gè)名為testing的集群,該集群在Amazon中運(yùn)行:
在集群的儀表板上,單擊頂部的Kubeconfig File按鈕。這將打開(kāi)kubeconfig集群的文件,其中包括授權(quán)集群端點(diǎn)的信息。
kubeconfig文件中的第一個(gè)條目是通過(guò)Rancher服務(wù)器的集群端點(diǎn)。向下滾動(dòng)以標(biāo)識(shí)此集群的授權(quán)群集端點(diǎn),該集群列為多帶帶的集群條目:
在我的示例中,此集群的名稱是testing-testing-2,并且端點(diǎn)server是AWS提供的公共IP。
復(fù)制server和certificate-authority-data字段的值,不包括引號(hào),并保存它們。
在kubeconfig文件中進(jìn)一步向下滾動(dòng)并找到您的用戶名和token:
復(fù)制token字段(不包括引號(hào))并保存。
接下來(lái)解碼證書(shū)授權(quán)機(jī)構(gòu)數(shù)據(jù)的base64版本,將其轉(zhuǎn)換回原始版本并保存。根據(jù)您的工具,一些可行的選項(xiàng)包括:
設(shè)置GitLab項(xiàng)目通過(guò)我們從Rancher收集的信息,我們現(xiàn)在可以配置GitLab了。我們將首先在GitLab中創(chuàng)建一個(gè)新項(xiàng)目,該項(xiàng)目將使用Auto DevOps功能與我們的Kubernetes集群集成。
首先,登錄GitLab,然后選擇New Project。
在“新建項(xiàng)目”頁(yè)面上,選擇“從模板創(chuàng)建”選項(xiàng)卡。這將為您提供要使用的模板項(xiàng)目列表。選擇NodeJS Express,然后單擊“Use template”:
為項(xiàng)目命名,并將“可見(jiàn)性級(jí)別”設(shè)置為“ 公共”。完成后單擊“ 創(chuàng)建項(xiàng)目”。
注意在我撰寫(xiě)本文時(shí),可見(jiàn)性級(jí)別可以設(shè)為“私密”,不過(guò)這是GitLab的Auto DevOps實(shí)驗(yàn)性功能。
在項(xiàng)目頁(yè)面左側(cè)的菜單窗格中,選擇“設(shè)置”>“CI / CD”。展開(kāi)“ 環(huán)境變量”部分,并設(shè)置以下變量:
我們這次會(huì)禁用下圖這些功能,因?yàn)槲覀兊暮?jiǎn)單示例暫時(shí)不需要它們,并且它們會(huì)延長(zhǎng)部署所需的時(shí)間。在實(shí)際項(xiàng)目中,您可以根據(jù)您的實(shí)際需求啟用其中一些選項(xiàng):
單擊“ 保存變量”以完成GitLab項(xiàng)目配置。
連接GitLab和Rancher現(xiàn)在,我們已準(zhǔn)備好將我們的GitLab項(xiàng)目與Rancher管理的Kubernetes集群集成。
在GitLab中,選擇新克隆的項(xiàng)目。在左側(cè)菜單中,選擇“ 操作”>“Kubernetes”。單擊綠色“添加Kubernetes集群”按鈕。在下一頁(yè)上,選擇“添加現(xiàn)有集群”選項(xiàng)卡。
按以下信息填寫(xiě)相應(yīng)字段:
單擊“ 添加Kubernetes集群”。GitLab將添加集群,并在其中創(chuàng)建新的命名空間。您可以查看Rancher接口,確認(rèn)新創(chuàng)建的命名空間已經(jīng)創(chuàng)建成功。
注意GitLab連接到集群時(shí)所做的第一件事就是為項(xiàng)目創(chuàng)建一個(gè)命名空間。如果您在一段時(shí)間后沒(méi)有看到創(chuàng)建名稱空間,則說(shuō)明可能出現(xiàn)了一些問(wèn)題。
將集群添加到GitLab后,將顯示要安裝到集群中的應(yīng)用程序列表。第一個(gè)是Helm Tiller。繼續(xù),單擊“ 安裝”將其添加到集群。
接下來(lái),安裝Ingress,它將允許GitLab將流量路由到您的應(yīng)用程序:
根據(jù)您配置進(jìn)群的方式,您的入口端點(diǎn)可能會(huì)自動(dòng)填充,也可能不會(huì)。在本教程中,我將使用xip.io主機(jī)名來(lái)指向單個(gè)節(jié)點(diǎn)的流量。至于您的用例,您可能需要設(shè)置通配符域并將其指向此ingress(或指向您的節(jié)點(diǎn)IP等)。
部署好ingress后,滾動(dòng)到頁(yè)面頂部并找到“基本域”字段。輸入其中一個(gè)節(jié)點(diǎn)的公共IP地址,然后輸入.xip.io。這將創(chuàng)建一個(gè)解析為該IP地址的通配符域,這對(duì)于我們的示例就足夠了:
接下來(lái),在導(dǎo)航欄中,選擇“設(shè)置”>“CI / CD”。展開(kāi)“ 自動(dòng)DevOps”部分,然后選中“默認(rèn)為自動(dòng)DevOps管道”框。這不僅意味著Auto DevOps已被設(shè)為默認(rèn)值,還能夠觸發(fā)構(gòu)建。將“部署策略”設(shè)置為“ 繼續(xù)部署到生產(chǎn)”:
檢查Auto DevOps框后,管道運(yùn)行將開(kāi)始。導(dǎo)航到GitLab中的CI / CD>管道。您應(yīng)該看到類似于下圖的內(nèi)容,這表明GitLab正在部署您的應(yīng)用程序:
驗(yàn)證Rancher中的部署下面讓我們回到Rancher,查看一下我們的部署的情況,看看資源是如何轉(zhuǎn)換為Rancher界面中的Kubernetes對(duì)象的。
在Rancher中,導(dǎo)航到您的進(jìn)群,然后單擊頂部導(dǎo)航菜單中的Projects / Namespaces。
GitLab代表您創(chuàng)建了兩個(gè)命名空間:一個(gè)是gitlab-managed-apps,另一個(gè)是唯一的應(yīng)用程序命名空間。gitlab-managed-apps命名空間包含資源,如用于部署應(yīng)用程序的nginx 和Helm tiller實(shí)例。那個(gè)應(yīng)用程序的唯一命名空間,包含著應(yīng)用程序的部署。
為了將這些進(jìn)一步可視化,我們可以將這些命名空間移動(dòng)到我們的Default項(xiàng)目中。您也可以使用任何其他項(xiàng)目。單擊“移動(dòng)”按鈕,然后選擇所需的項(xiàng)目:
移動(dòng)命名空間后,導(dǎo)航到他們所屬的項(xiàng)目,然后導(dǎo)航到Workloads頁(yè)面。該頁(yè)面將在其特定于應(yīng)用程序的命名空間中顯示您的新部署:
請(qǐng)注意部署名稱下的443 / https鏈接。單擊該鏈接,您就可以跳轉(zhuǎn)至您的部署的通配符域的ingress。如果一切順利,你將可以看到這個(gè)象征著成功的頁(yè)面:
結(jié) 語(yǔ)
恭喜!您剛剛成功地使用授權(quán)集群端點(diǎn)將GitLab的Auto DevOps與Rancher管理的Kubernetes集群連接,以實(shí)現(xiàn)更安全、直接的連接了!
當(dāng)探索Rancher的其他區(qū)域時(shí),你可能會(huì)注意到GitLab以你的名義為你創(chuàng)建的其他對(duì)象。例如,“負(fù)載均衡”選項(xiàng)卡顯示已部署的L7 ingress以及創(chuàng)建的主機(jī)名。您還可以在“服務(wù)發(fā)現(xiàn)”選項(xiàng)卡下查看部署的應(yīng)用程序的內(nèi)部服務(wù)。
GitLab的Auto DevOps功能不僅易于使用,而且可定制且功能強(qiáng)大。在本文的演示中,我們禁用了一些高級(jí)功能,如自動(dòng)測(cè)試、依賴項(xiàng)掃描和許可管理。這些功能在后期也可以重新啟用,并通過(guò)配置GitLab,為您的開(kāi)發(fā)環(huán)境提供更多意想不到的便利與價(jià)值。除了Auto DevOps之外,GitLab還為CI / CD提供了.gitlab-ci.yml文件,用戶可以借此進(jìn)行更多的擴(kuò)展定制。在GitLab的文檔中您可以了解到更多信息:
https://docs.gitlab.com
在Kubernetes和Rancher上構(gòu)建CI / CD流水線
Kubernetes的一大價(jià)值,就是為企業(yè)優(yōu)化開(kāi)發(fā)操作流程,而CI工作流與Kubernetes的集成,是大多團(tuán)隊(duì)極關(guān)注的重要部分。
本周三(4月24日)晚20:30,Rancher將舉辦免費(fèi)的在線培訓(xùn)《企業(yè)如何構(gòu)建CI/CD流水線》,本次直播中,我們將分享:
如何對(duì)接GitLab
構(gòu)建鏡像
發(fā)布鏡像到內(nèi)置的鏡像倉(cāng)庫(kù)
發(fā)布鏡像到遠(yuǎn)端倉(cāng)庫(kù)
通過(guò)流水線部署應(yīng)用
通過(guò)應(yīng)用商店發(fā)布自己的應(yīng)用
如何設(shè)置流水線通知
您可以點(diǎn)擊鏈接:http://live.vhall.com/729465809 預(yù)約此次課程,周三晚使用同一鏈接即可觀看直播!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/32974.html
摘要:王磊此次演講的題目為容器新技術(shù)架構(gòu)下的運(yùn)維實(shí)踐,詳細(xì)為大家講解了在基于構(gòu)建容器的過(guò)程中,如何以應(yīng)用為中心,通過(guò)新的技術(shù)工具對(duì)服務(wù)節(jié)點(diǎn)集群平臺(tái)等多個(gè)方面進(jìn)行管理運(yùn)維,提高系統(tǒng)的自動(dòng)化運(yùn)維能力。 2018年11月16-17日,運(yùn)維&容器技術(shù)盛會(huì) CNUTCon 全球運(yùn)維技術(shù)大會(huì)在上海·光大會(huì)展中心成功舉辦。時(shí)速云聯(lián)合創(chuàng)始人兼 CTO 王磊受邀參加此次大會(huì),并發(fā)表主題演講。王磊此次演講的題目...
摘要:自動(dòng)化測(cè)試和持續(xù)集成發(fā)布。在服務(wù)型環(huán)境中部署和調(diào)整數(shù)據(jù)庫(kù)或其他的后臺(tái)應(yīng)用。容器與鏡像的關(guān)系類似于面向?qū)ο缶幊讨械膶?duì)象與類。容器容器是獨(dú)立運(yùn)行的一個(gè)或一組應(yīng)用。提供了龐大的鏡像集合供使用。 還在按照mysql安裝教程一步一步配置服務(wù)配置賬戶嗎?還在為每開(kāi)一個(gè)新環(huán)境重新配置這些服務(wù)感到苦惱嗎?使用Docker,服務(wù)快速構(gòu)建部署。解決你的研發(fā)時(shí)間,早點(diǎn)下班~現(xiàn)代技術(shù),還不會(huì)docker你就落...
摘要:該文章用于概述一個(gè)小型持續(xù)集成環(huán)境的搭建的方案什么是持續(xù)集成持續(xù)集成作為當(dāng)今軟件開(kāi)發(fā)實(shí)踐,可以簡(jiǎn)單理解為團(tuán)隊(duì)開(kāi)發(fā)相對(duì)頻繁的集成他們的工作,一般讓每個(gè)成員每天至少集成一次,而這回造成每天會(huì)有多次的版本發(fā)布。 該文章用于概述一個(gè)小型持續(xù)集成環(huán)境的搭建的方案 什么是持續(xù)集成? 持續(xù)集成作為當(dāng)今軟件開(kāi)發(fā)實(shí)踐,可以簡(jiǎn)單理解為團(tuán)隊(duì)開(kāi)發(fā)相對(duì)頻繁的集成他們的工作,一般讓每個(gè)成員每天至少集成一次,而這回...
摘要:新近發(fā)布,中國(guó)區(qū)團(tuán)隊(duì)特為中國(guó)用戶準(zhǔn)備了千元大獎(jiǎng),邀您參與用戶體驗(yàn)計(jì)劃找,提團(tuán)隊(duì)珍視用戶的每一個(gè)意見(jiàn)與反饋。新版本發(fā)布后還將經(jīng)歷版本完善與優(yōu)化的階段。 showImg(https://segmentfault.com/img/remote/1460000016731917?w=1600&h=900); GitLab支持、CICD優(yōu)化、項(xiàng)目配額管理、驅(qū)散容器功能等等,Rancher 2.1...
摘要:報(bào)告劃重點(diǎn)和領(lǐng)跑企業(yè)容器云市場(chǎng)在此次發(fā)布的企業(yè)級(jí)容器平臺(tái)的類似的魔力象限中,和是企業(yè)級(jí)容器管理平臺(tái)市場(chǎng)的卓越領(lǐng)導(dǎo)者。 showImg(https://segmentfault.com/img/remote/1460000016766848?w=1268&h=365); 全球著名的調(diào)研機(jī)構(gòu)Forrester Research近日發(fā)布了《The Forrester New Wave: En...
閱讀 2832·2023-04-25 18:58
閱讀 977·2021-11-25 09:43
閱讀 1210·2021-10-25 09:46
閱讀 3494·2021-09-09 11:40
閱讀 1679·2021-08-05 09:59
閱讀 869·2019-08-29 15:07
閱讀 956·2019-08-29 12:48
閱讀 695·2019-08-29 11:19