2.使用jenkins自動構建並發布應用到k8s集群


作者

微信:tangy8080
電子郵箱:914661180@qq.com
更新時間:2019-06-21 14:39:01 星期五

歡迎您訂閱和分享我的訂閱號,訂閱號內會不定期分享一些我自己學習過程中的編寫的文章
如您在閱讀過程中發現文章錯誤,可添加我的微信 tangy8080 進行反饋.感謝您的支持。

文章主題

在物理機上安裝jenkins

前置條件

  • 必須安裝jdk
  • 物理機上必須安裝了kubectl,后面jenkins會調用kubectl執行創建操作
  • 需要安裝jdk
 yum install -y java-1.8.0-openjdk.x86_64

正文

安裝jenkins

添加Jenkins庫到yum庫,Jenkins將從這里下載安裝。
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
yum install -y jenkins
啟動jenkins服務

jenkins在安裝后默認會開機啟動,無需特殊處理。

service jenkins start/stop/restart
訪問jenkins WebUI

http://ip:8080

如果物理機上沒有安裝git,需要安裝git
yum install git -y

在jenkins中安裝插件

該插件用於生成docker鏡像,並推送到docker倉庫中

在安裝Jenkins的物理機上安裝docker

https://www.runoob.com/docker/centos-docker-install.html

sudo systemctl enable docker
sudo systemctl start docker

配置docker安裝

配置構建參數

配置Docker Build and Publish插件

在上面配置的主機上(這里是192.168.161.180)上打開docker的 tcp連接

[root@k8s-180 docker]# cat /etc/docker/daemon.json

{
    "registry-mirrors":[
        "https://docker.mirrors.ustc.edu.cn",
        "https://hub-mirror.c.163.com"
    ],
    "insecure-registries":[
        "docker02:35000"
    ],
    "max-concurrent-downloads":20,
    "live-restore":true,
    "max-concurrent-uploads":10,
    "debug":true,
    "data-root":"/data/k8s/docker/data",
    "exec-root":"/data/k8s/docker/exec",
    "log-opts":{
        "max-size":"100m",
        "max-file":"5"
    },
    "hosts":[
        "tcp://0.0.0.0:2375",
        "unix:///var/run/docker.sock"
    ]
}

#重載所有修改過的配置文件
systemctl daemon-reload

#重啟docker服務
systemctl restart docker.service
更改jenkins的用戶

在安裝k8s時,我們是以管理員身份運行的.如果不能改.不方便調用kubectl工具

# 打開配置文件
vim /etc/sysconfig/jenkins
# 修改$JENKINS_USER,並去掉當前行注釋
$JENKINS_USER="root"


chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins

# 重啟Jenkins(若是其他方式安裝的jenkins則重啟方式略不同)
service jenkins restart
# 查看Jenkins進程所屬用戶
ps -ef | grep jenkins
# 若顯示為root用戶,則表示修改完成
調用kubectl完成部署
BUILD_NUMBER="${BUILD_NUMBER}"

#將BUILD_NUMBER寫入DaemonSet.yaml的鏡像地址
sed -i "s/\[BUILD_NUMBER\]/$BUILD_NUMBER/" ${WORKSPACE}/deploy/DaemonSet.yaml

#先創建名稱空間
/opt/k8s/bin/kubectl apply -f ${WORKSPACE}/deploy/Namespace.yaml
#執行deploy目錄下的所有yaml文件
/opt/k8s/bin/kubectl apply -f ${WORKSPACE}/deploy/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM