gitlab 安装gitlabrunner 无法连接tiller_谈一谈GitLab Runner是个什么东东?
概念
我從官網搜了一下,GitLab Runner 是一個開源項目, 它用來運行你定制的任務(jobs)并把結果返回給 GitLab。 GitLab Runner 配合GitLab CI(GitLab 內置的持續集成服務) 協調完成任務。
gitlab
想要了解 GitLab Runner之前,我們先要知道或者說必須要知道GitLab是什么東東?
GitLab是由GitLabInc.開發,使用MIT許可證的基于網絡的Git倉庫管理工具,且具有wiki和issue跟蹤功能。使用Git作為代碼管理工具,并在此基礎上搭建起來的web服務。簡單來說就是github的翻版,一個存放代碼的倉庫平臺。最簡單的應用場景就是開發使用git提交代碼(push)到gitlab,也可以從gitlab下拉代碼(pull)到本地。
對于開發者們來說,git + GitLab已經滿足了日常的全部,根本沒想過還有GitLab Runner這個東東。那么官方為什么還要推出GitLab Runner這個開源項目?它有哪些應用場景?對于開發者來說有沒有必要學習GitLab Runner呢?
GitLab為什么要推出Gitlab Runner?
我個人觀點是:GitLab為了加入可持續集成工具(CI/CD)市場。在國內IT界技術人士眼里幾乎都聽到過大名鼎鼎的jenkins,因為jenkins是一個可持續集成、交付、部署的web平臺,jenkins在這個領域幾乎占領了整個國內市場。當然還有一些國外的集成工具,但國內幾乎都不用。
GitLab-CI(GitLab可持續集成服務)確實在大家眼里是一個比較陌生的概念,因為GitLab是從8.0版本才開始集成GitLab-CI功能的,應用的人本來就很少,所以知道人就更少了,但是隨著近年來GitLab的發展越來越強盛,版本更新速度非常之快,功能應用也越來越豐富,其GitLab Runner就孕育而成了。
在當今,git + gitlab + jenkins還是主流的萬精油方案,這無可厚非,但由于git + gitlab + gitlab-CI 部署非常輕便,加上越來越多人開始理解和應用gitlab-CI + gitlab-runner發布方案,大多數人都在朝著更加方便快捷部署方向前進,若干年后jenkins在國內的霸主地位岌岌可危,但最終還是要由市場來決定。
GitLab Runer 和 GitLab CI 關系
GitLab-Runner是配合GitLab-CI進行使用的。一般地,GitLab里面的每一個工程都會定義一個屬于這個工程的軟件集成腳本,用來自動化地完成一些軟件集成工作。當這個工程的倉庫代碼發生變動時,比如有人push了代碼,GitLab就會將這個變動通知GitLab-CI。這時GitLab-CI會找出與這個工程相關聯的Runner,并通知這些Runner把代碼更新到本地并執行預定義好的執行腳本。
所以,GitLab-Runner就是一個用來執行軟件集成腳本的東西。你可以想象一下:Runner就像一個個的工人,而GitLab-CI就是這些工人的一個管理中心,所有工人都要在GitLab-CI里面登記注冊,并且表明自己是為哪個工程服務的。當相應的工程發生變化時,GitLab-CI就會通知相應的工人執行軟件集成腳本。如下圖所示:
應用場景
因為我把gitlab-runner應用在web發布環境中,所以在實際應用中我進行了一些調整,把gitlab-runner當作“中轉站”,一對多方式?!爸修D站”與各源站通過ssh連接,“中轉站”定義好執行的腳本,腳本內容就是通過ssh連接到各源站執行git pull等操作。如下圖所示:
使用“中轉站”的好處是:
1)單臺server管理所有Runner即可,腳本管理集中化;
2)不用每臺源站PC都要安裝Runner,然后再注冊,過于繁瑣;
3)ssh 連接方式主流、便捷,但需要控制好防火墻策略;
4)在gitlab UI界面,管理runners也簡潔明了;
5)單個job執行后,所有源站反饋結果信息集中化,方便查看;
其他方案
第一種(推薦):公用1個runner,很簡單,所有后方集群向gitlab-ci注冊,公用runner根據定義不同的腳本(腳本命名為不同集群名稱,容易識別)去往不同的集群。(都是ssh連到集群執行命令)
第二種(高級):1臺多個runner,雖然多,但是壓力分攤到不同runner進程上,但也不適用建太多runner,這樣管理反而不方便。
我為什么要運行多個runner?
這個主要還是為了區分業務,每一類業務使用一個runner執行,這樣在管理上也方便區分,當然,所有業務也可以共用一個runner。
最后,對于開發者來說有沒有必要學習GitLab Runner?
我個人覺得GitLab的可持續集成服務和發布對于開發者來說只要知道有這個功能就可以了,而對于web框架部署或是運維人員來說就非常有必要學習一下了。
本文錯漏不足之處還請見諒!
總結
以上是生活随笔為你收集整理的gitlab 安装gitlabrunner 无法连接tiller_谈一谈GitLab Runner是个什么东东?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php jsonerrorsyntax,
- 下一篇: 令xtu3service开机时立即启动_