日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第四十四章 微服务CICD(6)- gitlab + jenkins + docker + k8s

發布時間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第四十四章 微服务CICD(6)- gitlab + jenkins + docker + k8s 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

總體流程:

  • 在開發機開發代碼后提交到gitlab
  • 之后通過webhook插件觸發jenkins進行構建,jenkins將代碼打成docker鏡像,push到docker-registry
  • 之后將在k8s-master上執行rc、service的創建,進而創建Pod,從私服拉取鏡像,根據該鏡像啟動容器

在第四十三章 微服務CICD(5)- gitlab + jenkins + docker中,實現了前兩步。本節實現第三步

?

一、打通jenkins與k8s-master兩臺機器之間的ssh無密碼訪問

參考:第四十二章 微服務CICD(4)- jenkins + gitlab + webhooks + publish-over-ssh(2)

添加ssh server:

說明:由于不需要拷貝jenkins機器上的文件到10.211.55.6,所以Remote Directory不填。

?

二、jenkins服務配置

選擇機器,執行命令。

?

三、k8s-master(10.211.55.6)

1、在/data/目錄下創建rc和svc文件

1.1、myservice1-docker-rc.yaml

1 apiVersion: v1 2 kind: ReplicationController 3 metadata: 4 name: myservice1-docker 5 spec: 6 replicas: 2 7 selector: 8 app: myservice1-docker 9 template: 10 metadata: 11 labels: 12 app: myservice1-docker 13 spec: 14 containers: 15 - name: myservice1-docker 16 image: 10.211.55.4:5000/com.xxx/myservice1-docker:1.0-SNAPSHOT 17 imagePullPolicy: Always 18 ports: 19 - containerPort: 8080

說明:imagePullPolicy:

  • Always:總是拉取鏡像,如果tag是lastest的話,該配置是默認值
  • IfNotPresent:如果鏡像不存在,則拉取鏡像,如果tag不是lastest的話,該配置是默認值
  • Never

1.2、myservice1-docker-svc.yaml

1 apiVersion: v1 2 kind: Service 3 metadata: 4 name: myservice1-docker 5 spec: 6 type: NodePort 7 ports: 8 - port: 8080 9 nodePort: 30001 10 selector: 11 app: myservice1-docker

2、在/data/script/目錄下創建service_start.sh腳本

1 #!/bin/bash 2 export service_name=$1 3 sleep_second=3 4 5 echo 'kubectl delete rc ${service_name}' 6 kubectl delete rc ${service_name} 7 8 echo 'kubectl delete service ${service_name}' 9 kubectl delete service ${service_name} 10 11 echo 'kubectl delete pods -l app=${service_name}' 12 kubectl delete pods -l app=${service_name} 13 14 sleep ${sleep_second} 15 16 echo 'create rc' 17 kubectl create -f /data/${service_name}-rc.yaml 18 19 echo 'create service' 20 kubectl create -f /data/${service_name}-svc.yaml

說明:

  • 首先刪除相應service的rc,service,以及擁有app=${service_name}標簽的所有pods
    • 第一次執行該腳本的時候,由于rc、service、pod不存在,刪除的話,會打出error日志,無所謂(沒任何影響)。
  • 之后,睡3s
  • 最后,創建rc(此時會創建pod,并從registry拉取鏡像,最后根據該鏡像啟動容器),創建service(提供對外訪問接口)

?

三、測試

1、本地:

  • git add --all
  • git commit -m"test k8s cicd"
  • git push origin HEAD:dev

2、查看jenkins的console

3、瀏覽器訪問http://10.211.55.8:30001/docker/hello

轉載于:https://www.cnblogs.com/java-zhao/p/6065268.html

總結

以上是生活随笔為你收集整理的第四十四章 微服务CICD(6)- gitlab + jenkins + docker + k8s的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。