Kubernetes 學(xué)習(xí)筆記(四):在 Minikube 中搭建 Jenkins Server

有一段時間沒寫了莹汤,這個坑一直在這怪難受的決定把它填了。

大體的搭建流程和先前寫到的 Git Server 大同小異,但細(xì)節(jié)部分不盡相同隘道,有興趣的同僚亦可移步至 這里

關(guān)于 Kubernetes 的配置請移步至 這里郎笆。


作為我近日工作的 Microservices framework 中的重要一環(huán)谭梗,Jenkins 的搭建自然成為了重中之重。

二話不說先上我的 Dockerfile:

FROM jenkins:alpine

MAINTAINER Ralph Wang

# 因為在公司工作的關(guān)系內(nèi)部網(wǎng)絡(luò)經(jīng)常會阻礙 Container 與外部的連結(jié)宛蚓,遂加下文以設(shè)置代理激捏。

ENV http_proxy ${proxy_address}:${proxy_port}

ENV https_proxy ${proxy_address}:${proxy_port}

USER root

# Download and config kubectl(-s:Silent or quiet mode;-O:Download凄吏;-S:Show error)

RUN curl -L -O https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl; chmod +x ./kubectl; mv ./kubectl /usr/local/bin/kubectl

# Download and config docker

RUN curl -sSL -O https://get.docker.com/builds/Linux/x86_64/docker-latest.tgz && tar -xvzf docker-latest.tgz; mv docker/* /usr/bin/ && rm docker-latest.tgz

上述兩個 curl command 分別 download / config 了 kubectl 和 docker 兩個命令远舅,docker 是用來在 Jenkins 的任務(wù)過程中創(chuàng)建 Image闰蛔,kubectl 是用來在 Jenkins 的任務(wù)中實(shí)現(xiàn) Deployment 和 Service 的創(chuàng)建。


完成 Dockerfile 之后图柏,我們需要建立此 Image序六,我將其命名為 jenkinserver。

再來我們需要用一個 config 文件來實(shí)現(xiàn)創(chuàng)建 Kubernetes Deployment爆办,下面就是我所編寫的 jenkins-deployment.yaml(切記 .yaml 文件不能使用 Tab):

apiVersion: apps/v1

kind: Deployment

metadata:

? name: jenkins

? labels:

? ? app: jenkins

spec:

? replicas: 1 # 我目前只需要一個 Instance 所以就設(shè)置為1难咕。

? selector:

? ? matchLabels:

? ? ? app: jenkins

? template: # This is the pod template。

? ? metadata:

? ? ? labels:

? ? ? ? app: jenkins

? ? spec:

? ? ? containers:

? ? ? - name: jenkins

? ? ? ? image: jenkinserver # Image 的名字距辆。

? ? ? ? imagePullPolicy: Never # 迫使 Kubernetes 使用本地鏡像余佃。

? ? ? ? ports:

? ? ? ? - containerPort: 8080 # 8080 作為 Web Console 的 Port。

? ? ? ? ? name: web

? ? ? ? ? protocol: TCP

? ? ? ? - containerPort: 50000

? ? ? ? ? name: agent

? ? ? ? ? protocol: TCP

? ? ? ? volumeMounts:

? ? ? ? - mountPath: /var/run/docker.sock # 首先掛載了本地 docker 的接口跨算,以便在 Jenkins Container 中訪問 docker爆土。

? ? ? ? ? name: docker-sock-volume

? ? ? ? - mountPath: /var/jenkins_home # 其次掛載了 jenkins_home 以便在 Container 被摧毀是不丟失 Jenkins Server 中的內(nèi)容。

? ? ? ? ? name: jenkins-volume

? ? ? ? - mountPath: /var/.kube/config # 最后掛載了外部 Kubernetes 的配置文件诸蚕,以確辈绞疲可以在 Jenkins Container 內(nèi)部對外部的 Kubernetes 進(jìn)行修改。

? ? ? ? ? name: kube-config

? ? ? volumes:

? ? ? - name: docker-sock-volume # Docker sock 卷背犯。

? ? ? ? hostPath:

? ? ? ? ? path: /var/run/docker.sock

? ? ? - name: jenkins-volume # Jenkins 卷坏瘩。

? ? ? ? hostPath:

? ? ? ? ? path: /c/Users/ralph.wang/.jenkins

? ? ? - name: kube-config # Kubernetes config 卷。

? ? ? ? hostPath:

? ? ? ? ? path: /c/Users/ralph.wang/.kube/config

By running:

kubectl create -f jenkins-deployment.yaml

便可以實(shí)現(xiàn)創(chuàng)建 Deployment漠魏,隨后可以通過

kubectl get deployment jenkins

進(jìn)行確認(rèn)倔矾。


建立完 Deployment 之后,需要搭載 Service 來確敝拢可以在外部進(jìn)行連結(jié)哪自,下面是我創(chuàng)建的 jenkins-service.yaml:

apiVersion: v1

kind: Service

metadata:

? labels:

? ? app: jenkins

? name: jenkins

spec:

? type: NodePort # 和筆記之三的 GitServer 一樣采用 NodePort 的形式直接曝露 Service。

? ports:

? - port: 8080

? ? targetPort: 8080

? ? nodePort: 32200

? ? name: web

? selector:

? ? app: jenkins

隨后我們可以使用

kubectl create -f jenkins-service.yaml

進(jìn)行服務(wù)的創(chuàng)建禁熏,并且使用

kubectl get service jenkins

進(jìn)行服務(wù)的再確認(rèn)壤巷。


初始 Jenkins 的時候會需要在 console 里輸入初始密碼,這個密碼可以在?/var/jenkins_home/secrets/initialAdminPassword 中找到(當(dāng)然因為我們在上文中使用了 Volume瞧毙,所以自然可以在本地中瀏覽該文件胧华,即范例中的 /c/Users/ralph.wang/.jenkins/secrets/initialAdminPassword)。

配置完成之后即可開始使用啦宙彪!

希望能對大家有所幫助撑柔。文章的不足之處也請留言告知,感謝您访!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市剪决,隨后出現(xiàn)的幾起案子灵汪,更是在濱河造成了極大的恐慌檀训,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件享言,死亡現(xiàn)場離奇詭異峻凫,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)览露,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進(jìn)店門荧琼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人差牛,你說我怎么就攤上這事命锄。” “怎么了偏化?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵脐恩,是天一觀的道長。 經(jīng)常有香客問我侦讨,道長驶冒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任韵卤,我火速辦了婚禮骗污,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘沈条。我一直安慰自己需忿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布拍鲤。 她就那樣靜靜地躺著贴谎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪季稳。 梳的紋絲不亂的頭發(fā)上擅这,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天,我揣著相機(jī)與錄音景鼠,去河邊找鬼仲翎。 笑死,一個胖子當(dāng)著我的面吹牛铛漓,可吹牛的內(nèi)容都是我干的溯香。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼浓恶,長吁一口氣:“原來是場噩夢啊……” “哼玫坛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起包晰,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤湿镀,失蹤者是張志新(化名)和其女友劉穎炕吸,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體勉痴,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡赫模,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蒸矛。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瀑罗。...
    茶點(diǎn)故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖雏掠,靈堂內(nèi)的尸體忽然破棺而出斩祭,到底是詐尸還是另有隱情,我是刑警寧澤磁玉,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布停忿,位于F島的核電站,受9級特大地震影響蚊伞,放射性物質(zhì)發(fā)生泄漏席赂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一时迫、第九天 我趴在偏房一處隱蔽的房頂上張望颅停。 院中可真熱鬧,春花似錦掠拳、人聲如沸癞揉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽喊熟。三九已至,卻和暖如春姐刁,著一層夾襖步出監(jiān)牢的瞬間芥牌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工聂使, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留壁拉,地道東北人。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓柏靶,卻偏偏與公主長得像弃理,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子屎蜓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評論 2 354

推薦閱讀更多精彩內(nèi)容