在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在KubeSphere 容器中快速部署使用 GitLab 并構建 DevOps 項目

jf_57681485 ? 來源:jf_57681485 ? 作者:jf_57681485 ? 2024-07-26 11:19 ? 次閱讀

前提條件

安裝KubeSphere,認真閱讀全文可免費領取PetaExpress云服務器一臺。

在KubeSphere中啟用DevOps套件

參考:啟用DevOps https://kubesphere.io/zh/docs/v3.4/pluggable-components/devops/

安裝GitLabCE

我們先這次的演練創建一個名為devops的企業空間,同時創建一個名為gitlab的項目供GitLabCE部署使用。

通過應用倉庫部署GitLab應用

首先我們還是要先在devops企業空間中添加GitLab的官方HelmChart倉庫,推薦用這種自管理的方式來保障倉庫內容是得到及時同步的。通過「應用管理」下面的「應用倉庫」來添加如下的GitLab倉庫(倉庫URL:https://charts.gitlab.io/)

wKgZomajFbGAKFM8AAAkQAhb3Tc459.jpg

2.接下來進入先前創建的gitlab項目,從「應用負載」下面的「應用」頁面創建GitLab應用:選擇「從應用模版」創建即可得到如下界面,注意選擇紅框指示的這個應用。

wKgaomajFbGAD04VAAAuw0Y8-Mo055.jpgwKgZomajFbaALa8iAAA_VOxxJY8793.jpg

點擊進入后,點擊安裝

wKgaomajFbeAZ73zAAAtcwPypBY879.jpg

3.下面這一步十分重要,需要配置HelmChart部署應用的參數。由于GitLab默認的可配置項非常多(有上千行),因此我們這次只挑選可保障基礎業務使用的最小功能集的相關參數進行改寫,關于每個參數具體代表的含義請參見參數項上一行的注釋(并留意【注意】部分)。其它配置項請大家參見極狐

wKgZomajFbiADAerAABpaPms5Mg138.jpgwKgaomajFbiAC8x1AAB6c1Gnc5Q264.jpg



wKgaomajFbmAJ-4NAAB73Hw27f0043.jpg


wKgZomajFbqAGimuAACA3rTa_Vc926.jpg


wKgZomajFbqALY12AABzBWKFU1M686.jpg

雖然已經是最小功能集部署,但由于部署的服務及其資源開銷較多,部署過程還是比較長的。部署完成后可以在gitlab應用的「工作負載」部分查看到所有負載都在運行中的狀態。

4.確認所有工作負載運行后,如之前您已經配置過集群或項目網關并使能過gitlab.example.com的域名解析,那么您就可以直接訪問該域名來打開GitLab的站點頁面。

在GitLab中創建一個示例項目

首先讓我們來登陸GitLab。GitLab的初始密碼被作為Secret保存,我們可以回到項目首頁,在「配置」下的「保密字典」中搜索initial可以找到gitlab-initial-root-password的條目。點擊該字典條目,并在「數據」區塊中點擊最右側的眼睛圖標來展示password數據項的內容。

wKgaomajFbuAFsRZAABK3RWh4tE303.jpg

復制該密碼,并使用root作為用戶名,即可登陸GitLab得到如下圖所示的界面。

wKgZomajFb2AB-6dAABJLzFp6KE306.jpg

點擊「Createaproject」按鈕進入創建項目的頁面,通過「CreatefromTemplate」我們可以來創建一個示例項目用于后面的流水線演練。

讓我們選擇NodeJSExpress這個項目模版來創建應用,所有模版都可以通過Preview按鈕來預覽其中的內容,使用模版后得到如下創建項目界面。

wKgaomajFb6AXcgtAAA_eLgoRg0997.jpg

填入您偏好的項目名稱,并在項目可見度這里選擇默認的Private來創建私有項目,以便于后續演示如何訪問私有項目。完成導入后可以得到如下的項目頁面。

wKgZomajFb6AYa73AABarNmm7q8740.jpg

關閉AutoDevOps并創建Jenkinsfile

由于我們后續要使用KubeSphereDevOps,而GitLab默認開啟了AutoDevOps功能(會為無CI配置的項目自動提供流水線支持),為了避免混亂,我們先暫時關閉AutoDevOps。

找到項目頁面中間部位的文件及功能快捷入口區域,點擊「AutoDevOpsenabled」按鈕塊,進入配置頁面后取消DefaulttoAutoDevOpspipeline的勾選并「Savechanges」,即可完成AutoDevOps功能的關閉。

接下來,我們還需要為這個項目創建一個Jenkinsfile用于后續KubeSphereDevOps流水線的構建。在master分支下直接創建一個名為Jenkinsfile的文件,填入以下內容即可。

wKgaomajFb-ADFuOAAAuxHp-AI0106.jpg

使用KubeSphereDevOps為GitLab提供流水線

我們首先在devops的企業空間中創建一個名為demo的DevOps項目,用于后續演練如何為GitLab創建流水線。

將GitLab與KubeSphereJenkins進行綁定

由于KubeSphereJenkins默認綁定的GitLab服務是官方的gitlab.com,因此在創建流水線前需要先重新綁定到我們創建的私有GitLab服務上。

首先,我們需要打開KubeSphereJenkins的頁面,為了操作方便,我們直接為kubesphere-devops-system命名空間下的devops-jenkins開放NodePort。

wKgZomajFb-ACJGkAAA73NQ7aQE592.jpg

使用KubeSphere賬號登陸Jenkins(如果登陸失敗可能是賬號同步問題,可以修改一次KubeSphere的密碼再次嘗試)。通過「系統管理??系統配置」進入系統配置頁面,找到GitLabServers配置區,點擊「AddGitLabServer」開始添加我們的GitLab服務。

wKgaomajFcCAOJrVAAA6R9hKjvM464.jpg

如上圖所示,需要填寫或編輯的配置項一共有三項:

ServerURL:這里填入我們剛剛部署完成的GitLab服務的訪問方式(如果是域名訪問,一定需要是Jenkins也可達的域名)

Crendentials:這里選擇或創建一個Jenkins的的憑證項,該憑證需要是GitLab某個用戶的PersonalAccessToken(下面我們會繼續說明如何創建)

WebHook:這個一定要勾選ManageWebHooks這項,用于我們之后同步JenkinsPipeline的狀態到我們的GitLab服務中

創建GitLabPersonalAccessToken的JenkinsCrendential

首先,我們回到GitLab中,可以直接通過/-/profile/personal_access_tokens(例如本文可使用[http://gitlab.example.com/-/profile/personal_access_tokens](http://gitlab.example.com:30433/-/profile/personal_access_tokens))來訪問PersonalAccessTokens的創建頁面。按Jenkins的要求,我們創建一個名為jenkins且具備api``read_repository``write_repository權限的令牌,復制令牌字符串備用。

wKgZomajFcKAakwuAABbSYSaNjw982.jpg

然后我們回到Jenkins首頁,從「系統管理??安全??ManageCrendentials??StoresscopedtoJenkins??Jenkins??全局??全局憑據(unrestricted)」進入憑證創建頁面。

wKgaomajFcKAapWbAAAsHoIjOvU283.jpg

點擊左側面板的「添加憑據」即可開始創建憑證,填寫完成后點擊Ok保存即可完成憑證創建:

?Kind選擇GitLab個人令牌

?Scope選擇默認的全局,ID填入任意不產生命名沖突的ID

?Token填入剛剛復制備用的GitLab令牌字符串(可忽略字符串長度的提示)

完成這部分配置之后,KubeSphereDevOps流水線的狀態也會和我們GitLab中的Pipeline狀態形成聯動,大家可以參看視頻中的效果。

wKgZomajFcOAXgfxAAAZ6e4R0CQ241.png

使用Jenkinsfile創建KubeSphereDevOps流水線

讓我們進入之前創建的demoDevOps項目,開始「創建」流水線。

wKgaomajFcOAYhXRAAAic9PrgKo493.jpg

在彈出的「創建流水線」對話框中,我們填入一個流水線「名稱」并點擊下方「代碼倉庫(可選)」這個區域來進行代碼倉庫綁定。

wKgZomajFcSAWhhIAAAn9vcQfvg080.jpg

進入到「選擇代碼倉庫」面板后,我們選擇GitLab標簽頁,然后在「GitLab服務器地址」下拉框中選擇我們上一小節在Jenkins中添加到GitLabCE服務器。由于我們演練的是私有倉庫訪問,下面需要先選擇一個憑證用于訪問私有代碼倉庫。在之前沒有創建的情況下,這里我們點擊綠色的「創建憑證」鏈接開始創建。

wKgaomajFcWAZAlRAAAxMnEzA2Y201.jpg

在彈出的「創建憑證」對話框中,輸入「名稱」后選定類型為用戶名和密碼;然后在「用戶名」文本框中輸入我們的賬號root,在「密碼/令牌」中輸入之前從保密字典中獲取到的初始密碼(gitlab-initial-root-password)。

wKgZomajFcaAQU6LAAAq3foppEI375.jpg

通過「確定」按鈕保存憑證后回到「選擇代碼面板」,在「憑證」下拉框中選擇剛剛創建的gitlab-root,然后在「項目組/所有者」文本庫中填入我們的賬號root,點擊「代碼倉庫」下拉框可看到root賬號下所有的代碼倉庫,這里我們可以看到并選擇之前創建的示例項目root/rak-test-express。

wKgaomajFciAZIAWAAAxXgRs_q0903.jpg

通過??按鈕確認并保存配置后會再次回到「創建流水線」面板,此時可以看到「代碼倉庫」已出現我們選擇的root/nodejs-demo項目,點擊「下一步」進入「高級設置」標簽頁,這里我們不做額外的配置,直接點擊「確定」來創建流水線。創建成功后,我們可以看到如下一個「分支數量」為0并且健康的流水線。

wKgZomajFciAUZDIAAAk-10AqUw692.jpg

稍后片刻點擊進入新建的pipeline-test流水線,可以看到系統已經掃描到帶有Jenkinsfile的master分支并已經開始運行流水線。

wKgaomajFcmAOBDJAAAlepsIwio885.jpg

點擊master分支進入分支詳情頁面,不管運行成功還是失敗都可以進一步點擊「運行ID」一欄中的序號來查看詳細的運行日志及制品等。

wKgZomajFcyAN8GOAAAhEvjKTuM980.jpg

等待一段時間后運行成功,進入運行ID為1的運行記錄可以看到如下圖展示的界面。進一步我們可以點擊右上角的「查看日志」按鈕來了解詳細的流水線執行情況。

wKgaomajFc2APojoAABDJbsC9XE878.jpg

注意:對于多分支流水線,默認會先執行checkoutscm步驟,然后再執行Jenkinsfile中定義的流水線內容。

使用圖形編輯器創建KubeSphereDevOps流水線

本小節內容可參考KubeSphere官方文檔:DevOps用戶指南/使用DevOps/使用圖形編輯面板創建流水線。

KubeSphereDevOps流水線也可以通過圖形編輯界面來進行創建,讓我們重新回到demoDevOps項目首頁,「創建」一個新流水線。這次在「創建流水線」面板中我們不綁定代碼倉庫,直接「下一步」再直接「創建」一個名為gui的流水線。

進入流水線詳情頁面后,我們可以在右側面板看到「編輯流水線」的按鈕,點擊后在彈出的「選擇流水線模版」對話框中,我們選擇自定義流水線。

wKgZomajFc6AfO3wAAAnzypaIdA473.jpgwKgaomajFdKAL9T2AABEgIwMAoI117.jpg

另兩個流水線模版包含了更完整的CI/CD流水線構建示例,但內容相對復雜,歡迎大家線下自行選用進行體驗!

下面我們嘗試用圖形編輯器復現前一小節的兩個操作步驟,即拉起代碼,并打印一條HelloWorld消息。首先,我們點擊左側面板的+按鈕,然后選中添加出來的一個階段塊。

wKgZomajFdOAf9OTAAA5TSaQglo778.jpg

接著我們點擊左側階段塊上的「+添加步驟」,并在右側刷出的「添加步驟」面板中選則git步驟,在彈出的對話框中填入我們示例代碼倉庫的地址HTTPGit地址(如),憑證選用之前創建的gitlab-root,分支填寫master。

wKgaomajFdWARVJvAAAt05dni0Q093.jpg

完成后我們依樣畫葫蘆,再次添加一個打印消息步驟并填入HelloWorld!作為內容,最后得到如下圖所示的整體效果。

wKgZomajFdaAOnhpAAAzVEMS8pg166.jpg

完成編輯后「確定」再「確定」來保存流水線,回到詳情頁面后,可以通過右上角的「運行」按鈕來執行流水線。

wKgaomajFdaAX1K8AAAqbOwNxNk611.jpg

運行成功后可以再次查看流水線運行記錄,并查看運行日志,得到如下圖所示結果。

wKgZomajFdeASz0kAAA3Xv95KLM139.jpg

【番外】使用SSH訪問Kubernetes集群中的GitLab代碼倉庫

前文介紹的代碼倉庫的訪問方式都是通過HTTP的形式,但現實工作中我們最常用的還是SSH的訪問方式,那是否可以直接通過gitclonegit@gitlab.example.com:root/nodejs-demo.git這樣的方式來拉取和推送代碼呢?

答案是肯定的:可以!但是這里有一個大坑需要注意——默認SSH用的是22端口,但多了一層Kubernetes網絡之后,不管是否使用這個默認端口都需要處理好GitLab如何對外暴露SSH服務。

假設我們可以接受重新綁定一個端口來使用GitLabSSH,那么可以這樣操作:

首先,我們回到GitLab部署項目中,找到gitlab-shell服務并為它開放NodePort外部訪問端口

wKgaomajFdeAXmesAAA-KVulZnY254.jpg

基于這個端口,把Git訪問的地址都改為:

wKgZomajFdiAP3T8AAAumHbvxWE473.png

憑此文章可以去PetaExpress官網發工單免費領取2核2G云服務器一臺,數量有限先到先得。申領步驟:注冊→登錄→控制臺右上角發工單回復“本文文章網址+文章標題+申請獎勵

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 服務器
    +關注

    關注

    12

    文章

    9308

    瀏覽量

    86071
  • devops
    +關注

    關注

    0

    文章

    116

    瀏覽量

    12090
收藏 人收藏

    評論

    相關推薦

    華為云 Flexus X 實例:極速搭建個人代碼倉庫 GitLab 平臺

    ?GitLab 鏡像下載 5 3.2?GitLab 部署安裝 5 3.3 GitLab 配置 6 3.4 GitLab 登錄賬號重置 7 四
    的頭像 發表于 01-23 18:29 ?112次閱讀
    華為云 Flexus X 實例:極速搭建個人代碼倉庫 <b class='flag-5'>GitLab</b> 平臺

    Kubernetes:構建高效的容器化應用平臺

    Kubernetes 作為容器編排的事實標準,容器化應用部署中發揮著關鍵作用。 搭建 Kubernetes 集群是應用的基礎??梢允褂胟ubeadm工具
    的頭像 發表于 01-23 15:22 ?84次閱讀

    Flexus X實例GitLab部署構建流水線-私人一體化代碼倉庫

    828 B2B 企業節盛大啟幕,GitLab 賦能自動化流程,引領創新部署新時代!在這個瞬息萬變的數字時代,我們激動地推出整合 GitLab、Docker 的頂尖解決方案,為您的軟件開發項目
    的頭像 發表于 01-18 11:09 ?197次閱讀
    Flexus X實例<b class='flag-5'>GitLab</b><b class='flag-5'>部署</b>和<b class='flag-5'>構建</b>流水線-私人一體化代碼倉庫

    微服務容器部署好處多嗎?

    微服務容器部署好處有很多,包括環境一致性、資源高效利用、快速部署與啟動、隔離性與安全性、版本控制與回滾以及持續集成與持續部署。這些優勢助力
    的頭像 發表于 01-17 10:22 ?80次閱讀

    解鎖高效項目管理,Zentao 在華為云 Flexusx 容器部署與應用指南

    前言 在當今快速迭代的商業環境,高效且靈活的項目管理成為企業競爭力的關鍵。華為云 Flexusx 實例,以其靈活的 vCPU 內存配比、熱變配功能及按需計費模式 ,為項目管理軟件如
    的頭像 發表于 01-13 15:54 ?284次閱讀
    解鎖高效<b class='flag-5'>項目</b>管理,Zentao 在華為云 Flexusx <b class='flag-5'>容器</b>化<b class='flag-5'>部署</b>與應用指南

    云端代碼管理新體驗,華為云 Flexus X 實例上 GitLab 部署與使用的實戰指南云端代碼管理新體驗

    /CD 等功能,為企業打造高效、安全的研發環境。正值 828 華為云企業上云節,我們一同體驗這一強強聯合的云端解決方案。Flexus X 的高性價比與 GitLab 的先進項目管理工具,將助您實現快速上云
    的頭像 發表于 01-07 17:05 ?211次閱讀
    云端代碼管理新體驗,華為云 Flexus X 實例上 <b class='flag-5'>GitLab</b> <b class='flag-5'>部署</b>與使用的實戰指南云端代碼管理新體驗

    Flexus X 實例 C#/.Net Core 結合(git 代碼管理、docker 自定義鏡像)快速發布部署 - 讓你的項目飛起來~

    通過 Docker 技術自定義構建鏡像,從而實現項目從代碼到應用的快速構建、打包與部署流程。
    的頭像 發表于 12-25 21:15 ?211次閱讀
    Flexus X 實例 C#/.Net Core 結合(git 代碼管理、docker 自定義鏡像)<b class='flag-5'>快速</b>發布<b class='flag-5'>部署</b> - 讓你的<b class='flag-5'>項目</b>飛起來~

    devops使用最廣泛的集成工具盤點

    devops使用最廣泛的集成工具包括GitLab(全棧DevOps平臺)、Jenkins(CI/CD自動化服務器)、Docker(容器化技術)、Kubernetes(
    的頭像 發表于 11-26 13:48 ?246次閱讀

    容器云服務引擎是什么意思?

    容器云服務引擎是什么意思?容器云服務引擎是一種基于云原生架構的容器編排工具,能夠幫助用戶快速構建部署
    的頭像 發表于 10-19 17:08 ?210次閱讀

    常用的devops工具集成方法

    常用的devops工具集成方法涵蓋了軟件開發和運維的各個方面,從版本控制到自動化構建、測試、部署和監控。這些工具的有效集成可以幫助團隊提高協作效率,減少溝通障礙,實現快速、高質量的軟件
    的頭像 發表于 10-09 11:21 ?292次閱讀

    入門級攻略:如何容器部署微服務?

    第一步理解容器化基礎,第二步創建Dockerfile,第三步構建推送鏡像,第四步部署微服務,第五步管理微服務、第六步優化更新。容器部署微服
    的頭像 發表于 10-09 10:08 ?205次閱讀

    ARM平臺實現Docker容器技術

    。(定制應用鏡像來實現集成、持續支付、部署。開發人員可以通過dockerfile來進行鏡像構建,結合持續集成系統進行集成測試,而運維人員則可直接在生產環境
    發表于 07-25 14:36

    ARM平臺實現Docker容器技術

    應用鏡像來實現集成、持續支付、部署。開發人員可以通過dockerfile來進行鏡像構建,結合持續集成系統進行集成測試,而運維人員則可直接在生產環境
    發表于 07-17 11:05

    K8S學習教程三:PetaExpress KubeSphere 容器部署 Wiki 系統 wiki.js 啟用中文全文檢索

    K8S學習教程(三):PetaExpress KubeSphere 容器部署 Wiki 系統 wiki.js 啟用中文全文檢索? 。
    的頭像 發表于 07-08 17:03 ?698次閱讀
    K8S學習教程三:<b class='flag-5'>在</b>PetaExpress <b class='flag-5'>KubeSphere</b> <b class='flag-5'>容器</b><b class='flag-5'>部署</b> Wiki 系統 wiki.js <b class='flag-5'>并</b>啟用中文全文檢索

    K8S學習教程(二): PetaExpress KubeSphere容器平臺部署高可用 Redis 集群

    前言 Redis 是開發過程中經常用到的緩存中間件,為了考慮在生產環境穩定性和高可用,Redis通常采用集群模式的部署方式。 制定Redis集群的
    的頭像 發表于 07-03 15:30 ?838次閱讀
    K8S學習教程(二):<b class='flag-5'>在</b> PetaExpress <b class='flag-5'>KubeSphere</b><b class='flag-5'>容器</b>平臺<b class='flag-5'>部署</b>高可用 Redis 集群
    主站蜘蛛池模板: 一卡二卡三卡四卡无卡在线 | 夜夜骑天天干 | 欧美成人精品一区二区 | 国产高清网站 | 日本一区二区在线不卡 | 色性综合 | 亚洲va久久久噜噜噜久久狠狠 | 非常黄的网站 | 免费看大尺度视频在线观看 | 亚洲色图综合图区 | 国产情侣自拍小视频 | 都市禁忌猎艳风流美妇 | 亚洲福利视频网站 | 日本一区视频在线观看 | 赛罗奥特曼银河帝国普通话免费版 | 久久久久综合 | 老司机亚洲精品影院在线观看 | 天天干天天做 | 免费大片黄在线观看日本 | 射菊吧| 欧美综合久久 | 黄色网址你懂的 | 国产毛片久久国产 | 人人干97| 久久国产乱子伦精品免费午夜 | 日本h视频在线 | 一级录像| 李老汉和小花的性生生活 | 午夜.dj高清在线观看免费8 | 免费一级欧美在线观看视频片 | 狠狠色噜噜狠狠狠狠2021天天 | 亚洲综合久久久久久888 | 黄色视屏在线免费播放 | 在线色视频网站 | 欧美二级| 欧美巨大bbbb动漫 | 日本色婷婷 | 97人人人人| 乱码一区二区三区完整视频 | 午夜美女视频在线观看高清 | 亚洲综合色一区 |