GitLabAutoDevOps功能與Kubernetes集成教程-創(chuàng)新互聯(lián)

介?紹

在這篇文章中,我們將介紹如何將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)行集成的人。

十年的彌渡網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整彌渡建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“彌渡網(wǎng)站設(shè)計(jì)”,“彌渡網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

背?景

什么是GitLab Auto DevOps?

Auto DevOps是在GitLab 10.0中引入的功能,它讓用戶(hù)可以設(shè)置自動(dòng)檢測(cè)、構(gòu)建、測(cè)試和部署項(xiàng)目的DevOps管道。將GitLab Auto DevOps與Kubernetes集群配合使用,這意味著用戶(hù)可以無(wú)需配置CI / CD資源和其他工具,即可以部署應(yīng)用程序。

什么是Rancher的授權(quán)集群端點(diǎn)?

從v2.2.0開(kāi)始,Rancher引入了一項(xiàng)名為Authorized Cluster Endpoint的新功能,用戶(hù)可以直接訪(fǎng)問(wèn)Kubernetes而無(wú)需通過(guò)Rancher進(jìn)行代理。在v2.2.0之前,如果要直接與下游Kubernetes集群通信,用戶(hù)必須從各個(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用戶(hù)直接連接到這些集群,同時(shí)仍遵守安全策略。

如果您已為某些項(xiàng)目中的某個(gè)用戶(hù)明確授予了權(quán)限,則當(dāng)該用戶(hù)使用授權(quán)集群端點(diǎn)進(jìn)行連接時(shí),這些權(quán)限能自動(dòng)生效應(yīng)用?,F(xiàn)在,無(wú)論用戶(hù)是通過(guò)Rancher還是直接連接到Kubernetes集群,安全性都能得到保障。

授權(quán)集群端點(diǎn)功能的相關(guān)文檔對(duì)此有更詳細(xì)的說(shuō)明:

https://rancher.com/docs/rancher/v2.x/en/cluster-provisioning/rke-clusters/options/#authorized-cluster-endpoint

注意
目前,授權(quán)集群端點(diǎn)功能暫時(shí)僅適用于使用Rancher Kubernetes Engine(RKE)啟動(dòng)的下游Kubernetes進(jìn)群。

前期準(zhǔn)備

要將GitLab Auto DevOps與Rancher管理的Kubernetes集群進(jìn)行對(duì)接,您需要實(shí)現(xiàn)準(zhǔn)備好:

  • 一個(gè)GitLab.com帳戶(hù),或一個(gè)自托管GitLab實(shí)例上的帳戶(hù)(需已啟用Auto DevOps):GitLab.com帳戶(hù)需要已經(jīng)配置好了Auto DevOps。如果您使用的是自托管GitLab實(shí)例,則可以參考這一GitLab文檔了解如何啟用Auto DevOps:https://docs.gitlab.com/ee/topics/autodevops/

  • 運(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/rancher/v2.x/en/installation/ha/)。

  • Rancher管理的Kubernetes集群:您還需要一個(gè)通過(guò)RKE配置的、Rancher上管理的集群。此外,集群中需要有一個(gè)管理員用戶(hù),如果您使用的是GitLab.com,則需要通過(guò)公共網(wǎng)絡(luò)訪(fǎng)問(wèn)控制平面節(jié)點(diǎn)。

設(shè)置Rancher和Kubernetes

首先,我們需要先將Rancher和Kubernetes設(shè)置好。該過(guò)程的第一部分主要涉及收集信息。

注意
為簡(jiǎn)單起見(jiàn),這些步驟使用的是Rancher中默認(rèn)的admin帳戶(hù)。最佳實(shí)踐要求您使用獨(dú)立用戶(hù)執(zhí)行此類(lèi)過(guò)程,并限制該用戶(hù)對(duì)正在集成GitLab的集群的權(quán)限。

登錄Rancher并導(dǎo)航到要集成的下游集群。在本演示中,我們將在EC2實(shí)例上創(chuàng)建一個(gè)名為testing的集群,該集群在A(yíng)mazon中運(yùn)行:

GitLab Auto DevOps功能與Kubernetes集成教程

在集群的儀表板上,單擊頂部的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),該集群列為單獨(dú)的集群條目:

GitLab Auto DevOps功能與Kubernetes集成教程

在我的示例中,此集群的名稱(chēng)是testing-testing-2,并且端點(diǎn)server是AWS提供的公共IP。

復(fù)制server和certificate-authority-data字段的值,不包括引號(hào),并保存它們。

在kubeconfig文件中進(jìn)一步向下滾動(dòng)并找到您的用戶(hù)名和token:

GitLab Auto DevOps功能與Kubernetes集成教程

復(fù)制token字段(不包括引號(hào))并保存。

接下來(lái)解碼證書(shū)授權(quán)機(jī)構(gòu)數(shù)據(jù)的base64版本,將其轉(zhuǎn)換回原始版本并保存。根據(jù)您的工具,一些可行的選項(xiàng)包括:

GitLab Auto DevOps功能與Kubernetes集成教程

設(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”:

GitLab Auto DevOps功能與Kubernetes集成教程

為項(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è)置以下變量:

GitLab Auto DevOps功能與Kubernetes集成教程

我們這次會(huì)禁用下圖這些功能,因?yàn)槲覀兊暮?jiǎn)單示例暫時(shí)不需要它們,并且它們會(huì)延長(zhǎng)部署所需的時(shí)間。在實(shí)際項(xiàng)目中,您可以根據(jù)您的實(shí)際需求啟用其中一些選項(xiàng):

GitLab Auto DevOps功能與Kubernetes集成教程

單擊“?保存變量”以完成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)字段:

GitLab Auto DevOps功能與Kubernetes集成教程

GitLab Auto DevOps功能與Kubernetes集成教程

單擊“?添加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)建名稱(chēng)空間,則說(shuō)明可能出現(xiàn)了一些問(wèn)題。

將集群添加到GitLab后,將顯示要安裝到集群中的應(yīng)用程序列表。第一個(gè)是Helm Tiller。繼續(xù),單擊“?安裝”將其添加到集群。

接下來(lái),安裝Ingress,它將允許GitLab將流量路由到您的應(yīng)用程序:

GitLab Auto DevOps功能與Kubernetes集成教程

根據(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ì)于我們的示例就足夠了:

GitLab Auto DevOps功能與Kubernetes集成教程

接下來(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)”:

GitLab Auto DevOps功能與Kubernetes集成教程

檢查Auto DevOps框后,管道運(yùn)行將開(kāi)始。導(dǎo)航到GitLab中的CI / CD>管道。您應(yīng)該看到類(lèi)似于下圖的內(nèi)容,這表明GitLab正在部署您的應(yīng)用程序:

GitLab Auto DevOps功能與Kubernetes集成教程

驗(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)目:

GitLab Auto DevOps功能與Kubernetes集成教程

移動(dòng)命名空間后,導(dǎo)航到他們所屬的項(xiàng)目,然后導(dǎo)航到Workloads頁(yè)面。該頁(yè)面將在其特定于應(yīng)用程序的命名空間中顯示您的新部署:

GitLab Auto DevOps功能與Kubernetes集成教程

請(qǐng)注意部署名稱(chēng)下的443 / https鏈接。單擊該鏈接,您就可以跳轉(zhuǎn)至您的部署的通配符域的ingress。如果一切順利,你將可以看到這個(gè)象征著成功的頁(yè)面:

GitLab Auto DevOps功能與Kubernetes集成教程

結(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è)試、依賴(lài)項(xiàng)掃描和許可管理。這些功能在后期也可以重新啟用,并通過(guò)配置GitLab,為您的開(kāi)發(fā)環(huán)境提供更多意想不到的便利與價(jià)值。除了Auto DevOps之外,GitLab還為CI / CD提供了.gitlab-ci.yml文件,用戶(hù)可以借此進(jìn)行更多的擴(kuò)展定制。在GitLab的文檔中您可以了解到更多信息:

https://docs.gitlab.com

在Kubernetes和Rancher上構(gòu)建CI / CD流水線(xiàn)

Kubernetes的一大價(jià)值,就是為企業(yè)優(yōu)化開(kāi)發(fā)操作流程,而CI工作流與Kubernetes的集成,是大多團(tuán)隊(duì)極關(guān)注的重要部分。

明晚(4月24日)20:30,Rancher將舉辦免費(fèi)的在線(xiàn)培訓(xùn)《企業(yè)如何構(gòu)建CI/CD流水線(xiàn)》,本次直播中,我們將分享:

  • 如何對(duì)接GitLab

  • 構(gòu)建鏡像

  • 發(fā)布鏡像到內(nèi)置的鏡像倉(cāng)庫(kù)

  • 發(fā)布鏡像到遠(yuǎn)端倉(cāng)庫(kù)

  • 通過(guò)流水線(xiàn)部署應(yīng)用

  • 通過(guò)應(yīng)用商店發(fā)布自己的應(yīng)用

  • 如何設(shè)置流水線(xiàn)通知

您可以進(jìn)入鏈接:http://live.vhall.com/729465809 預(yù)約此次課程,周三晚使用同一鏈接即可觀(guān)看直播!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前文章:GitLabAutoDevOps功能與Kubernetes集成教程-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://muchs.cn/article26/dsgdcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化小程序開(kāi)發(fā)、虛擬主機(jī)、網(wǎng)站設(shè)計(jì)公司靜態(tài)網(wǎng)站、標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)