中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

GitLab Auto DevOps功能與Kubernetes集成教程

發布時間:2020-08-13 22:25:40 來源:網絡 閱讀:1252 作者:RancherLabs 欄目:云計算

介?紹

在這篇文章中,我們將介紹如何將GitLab的Auto DevOps功能與Rancher管理的Kubernetes集群連接起來,利用Rancher v2.2.0中引入的授權集群端點的功能。通過本文,你將能全面了解GitLab如何與Kubernetes集成,以及Rancher如何使用授權集群端點簡化這一集成工作的流程。本文非常適合Kubernetes管理員、DevOps工程師,或任何想將其開發工作流與Kubernetes進行集成的人。

背?景

什么是GitLab Auto DevOps?

Auto DevOps是在GitLab 10.0中引入的功能,它讓用戶可以設置自動檢測、構建、測試和部署項目的DevOps管道。將GitLab Auto DevOps與Kubernetes集群配合使用,這意味著用戶可以無需配置CI / CD資源和其他工具,即可以部署應用程序。

什么是Rancher的授權集群端點?

從v2.2.0開始,Rancher引入了一項名為Authorized Cluster Endpoint的新功能,用戶可以直接訪問Kubernetes而無需通過Rancher進行代理。在v2.2.0之前,如果要直接與下游Kubernetes集群通信,用戶必須從各個節點手動檢索kubeconfig文件以及API服務器地址。這不僅增加了操作的復雜度,而且還沒有提供一種機制來控制通過Rancher管理集群時可用的細化權限。

從Rancher v2.2.0開始,部署Rancher管理的集群時,默認情況下會啟用授權群集端點(ACE)功能。ACE將部分Rancher身份驗證和授權機制推送到下游Kubernetes集群,允許Rancher用戶直接連接到這些集群,同時仍遵守安全策略。

如果您已為某些項目中的某個用戶明確授予了權限,則當該用戶使用授權集群端點進行連接時,這些權限能自動生效應用。現在,無論用戶是通過Rancher還是直接連接到Kubernetes集群,安全性都能得到保障。

授權集群端點功能的相關文檔對此有更詳細的說明:

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

注意
目前,授權集群端點功能暫時僅適用于使用Rancher Kubernetes Engine(RKE)啟動的下游Kubernetes進群。

前期準備

要將GitLab Auto DevOps與Rancher管理的Kubernetes集群進行對接,您需要實現準備好:

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

  • 運行版本v2.2.0或更高版本的Rancher實例:您可以以單節點模式啟動Rancher(https://rancher.com/quick-start/),也可以創建HA安裝(https://rancher.com/docs/rancher/v2.x/en/installation/ha/)。

  • Rancher管理的Kubernetes集群:您還需要一個通過RKE配置的、Rancher上管理的集群。此外,集群中需要有一個管理員用戶,如果您使用的是GitLab.com,則需要通過公共網絡訪問控制平面節點

設置Rancher和Kubernetes

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

注意
為簡單起見,這些步驟使用的是Rancher中默認的admin帳戶。最佳實踐要求您使用獨立用戶執行此類過程,并限制該用戶對正在集成GitLab的集群的權限。

登錄Rancher并導航到要集成的下游集群。在本演示中,我們將在EC2實例上創建一個名為testing的集群,該集群在Amazon中運行:

GitLab Auto DevOps功能與Kubernetes集成教程

在集群的儀表板上,單擊頂部的Kubeconfig File按鈕。這將打開kubeconfig集群的文件,其中包括授權集群端點的信息。

kubeconfig文件中的第一個條目是通過Rancher服務器的集群端點。向下滾動以標識此集群的授權群集端點,該集群列為單獨的集群條目:

GitLab Auto DevOps功能與Kubernetes集成教程

在我的示例中,此集群的名稱是testing-testing-2,并且端點server是AWS提供的公共IP。

復制server和certificate-authority-data字段的值,不包括引號,并保存它們。

在kubeconfig文件中進一步向下滾動并找到您的用戶名和token:

GitLab Auto DevOps功能與Kubernetes集成教程

復制token字段(不包括引號)并保存。

接下來解碼證書授權機構數據的base64版本,將其轉換回原始版本并保存。根據您的工具,一些可行的選項包括:

GitLab Auto DevOps功能與Kubernetes集成教程

設置GitLab項目

通過我們從Rancher收集的信息,我們現在可以配置GitLab了。我們將首先在GitLab中創建一個新項目,該項目將使用Auto DevOps功能與我們的Kubernetes集群集成。

首先,登錄GitLab,然后選擇New Project

在“新建項目”頁面上,選擇“從模板創建”選項卡。這將為您提供要使用的模板項目列表。選擇NodeJS Express,然后單擊“Use template”:

GitLab Auto DevOps功能與Kubernetes集成教程

為項目命名,并將“可見性級別”設置為“?公共”。完成后單擊“?創建項目”。

注意
在我撰寫本文時,可見性級別可以設為“私密”,不過這是GitLab的Auto DevOps實驗×××。

在項目頁面左側的菜單窗格中,選擇“設置”>“CI / CD”。展開“?環境變量”部分,并設置以下變量:

GitLab Auto DevOps功能與Kubernetes集成教程

我們這次會禁用下圖這些功能,因為我們的簡單示例暫時不需要它們,并且它們會延長部署所需的時間。在實際項目中,您可以根據您的實際需求啟用其中一些選項:

GitLab Auto DevOps功能與Kubernetes集成教程

單擊“?保存變量”以完成GitLab項目配置。

連接GitLab和Rancher

現在,我們已準備好將我們的GitLab項目與Rancher管理的Kubernetes集群集成。

在GitLab中,選擇新克隆的項目。在左側菜單中,選擇“?操作”>“Kubernetes”。單擊綠色“添加Kubernetes集群”按鈕。在下一頁上,選擇“添加現有集群”選項卡。

按以下信息填寫相應字段:

GitLab Auto DevOps功能與Kubernetes集成教程

GitLab Auto DevOps功能與Kubernetes集成教程

單擊“?添加Kubernetes集群”。GitLab將添加集群,并在其中創建新的命名空間。您可以查看Rancher接口,確認新創建的命名空間已經創建成功。

注意
GitLab連接到集群時所做的第一件事就是為項目創建一個命名空間。如果您在一段時間后沒有看到創建名稱空間,則說明可能出現了一些問題。

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

接下來,安裝Ingress,它將允許GitLab將流量路由到您的應用程序:

GitLab Auto DevOps功能與Kubernetes集成教程

根據您配置進群的方式,您的入口端點可能會自動填充,也可能不會。在本教程中,我將使用xip.io主機名來指向單個節點的流量。至于您的用例,您可能需要設置通配符域并將其指向此ingress(或指向您的節點IP等)。

部署好ingress后,滾動到頁面頂部并找到“基本域”字段。輸入其中一個節點的公共IP地址,然后輸入.xip.io。這將創建一個解析為該IP地址的通配符域,這對于我們的示例就足夠了:

GitLab Auto DevOps功能與Kubernetes集成教程

接下來,在導航欄中,選擇“設置”>“CI / CD”。展開“?自動DevOps”部分,然后選中“默認為自動DevOps管道”框。這不僅意味著Auto DevOps已被設為默認值,還能夠觸發構建。將“部署策略”設置為“?繼續部署到生產”:

GitLab Auto DevOps功能與Kubernetes集成教程

檢查Auto DevOps框后,管道運行將開始。導航到GitLab中的CI / CD>管道。您應該看到類似于下圖的內容,這表明GitLab正在部署您的應用程序:

GitLab Auto DevOps功能與Kubernetes集成教程

驗證Rancher中的部署

下面讓我們回到Rancher,查看一下我們的部署的情況,看看資源是如何轉換為Rancher界面中的Kubernetes對象的。

在Rancher中,導航到您的進群,然后單擊頂部導航菜單中的Projects / Namespaces

GitLab代表您創建了兩個命名空間:一個是gitlab-managed-apps,另一個是唯一的應用程序命名空間。gitlab-managed-apps命名空間包含資源,如用于部署應用程序的nginx?和Helm tiller實例。那個應用程序的唯一命名空間,包含著應用程序的部署。

為了將這些進一步可視化,我們可以將這些命名空間移動到我們的Default項目中。您也可以使用任何其他項目。單擊“移動”按鈕,然后選擇所需的項目:

GitLab Auto DevOps功能與Kubernetes集成教程

移動命名空間后,導航到他們所屬的項目,然后導航到Workloads頁面。該頁面將在其特定于應用程序的命名空間中顯示您的新部署:

GitLab Auto DevOps功能與Kubernetes集成教程

請注意部署名稱下的443 / https鏈接。單擊該鏈接,您就可以跳轉至您的部署的通配符域的ingress。如果一切順利,你將可以看到這個象征著成功的頁面:

GitLab Auto DevOps功能與Kubernetes集成教程

結?語

恭喜!您剛剛成功地使用授權集群端點將GitLab的Auto DevOps與Rancher管理的Kubernetes集群連接,以實現更安全、直接的連接了!

當探索Rancher的其他區域時,你可能會注意到GitLab以你的名義為你創建的其他對象。例如,“負載均衡”選項卡顯示已部署的L7 ingress以及創建的主機名。您還可以在“服務發現”選項卡下查看部署的應用程序的內部服務。

GitLab的Auto DevOps功能不僅易于使用,而且可定制且功能強大。在本文的演示中,我們禁用了一些高級功能,如自動測試、依賴項掃描和許可管理。這些功能在后期也可以重新啟用,并通過配置GitLab,為您的開發環境提供更多意想不到的便利與價值。除了Auto DevOps之外,GitLab還為CI / CD提供了.gitlab-ci.yml文件,用戶可以借此進行更多的擴展定制。在GitLab的文檔中您可以了解到更多信息:

https://docs.gitlab.com

在Kubernetes和Rancher上構建CI / CD流水線

Kubernetes的一大價值,就是為企業優化開發操作流程,而CI工作流與Kubernetes的集成,是大多團隊極關注的重要部分。

明晚(4月24日)20:30,Rancher將舉辦免費的在線培訓《企業如何構建CI/CD流水線》,本次直播中,我們將分享:

  • 如何對接GitLab

  • 構建鏡像

  • 發布鏡像到內置的鏡像倉庫

  • 發布鏡像到遠端倉庫

  • 通過流水線部署應用

  • 通過應用商店發布自己的應用

  • 如何設置流水線通知

您可以進入鏈接:http://live.vhall.com/729465809 預約此次課程,周三晚使用同一鏈接即可觀看直播!


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江源县| 灯塔市| 阜新市| 庐江县| 慈溪市| 乌恰县| 凌云县| 漠河县| 吉木乃县| 石楼县| 越西县| 安远县| 墨江| 武义县| 仁寿县| 白水县| 二连浩特市| 淳化县| 司法| 绥棱县| 东阳市| 亳州市| 铜鼓县| 庐江县| 香河县| 邳州市| 大洼县| 秦安县| 眉山市| 玉环县| 岫岩| 巴青县| 光山县| 杭州市| 石嘴山市| 剑阁县| 四平市| 错那县| 乌拉特后旗| 永寿县| 保亭|