2.使用jenkins自动构建并发布应用到k8s集群

Posted Honeysuckle

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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/

以上是关于2.使用jenkins自动构建并发布应用到k8s集群的主要内容,如果未能解决你的问题,请参考以下文章

k8s的持续发布

jenkins shell脚本自动化构建阿里云k8s上应用

K8S系列---jenkins主从构建发布流程

jenkins和ansible的区别

使用Jenkins实现重构项目并部署项目到阿里k8s环境运行

使用Jenkins实现重构项目并部署项目到阿里k8s环境运行