• 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/
    
    请尽量按照自己期望的生活 email:18980489167@189.cn
  • 相关阅读:
    UtraEdit 不启用语法彩色显示
    XXX 不是当前用户的有效责任,请联系您的系统管理员
    子帐 SLA(SubLedger Accounting)
    518 vue组件的data是函数,不是对象
    517 vue注册组件语法糖,模板的分离写法
    516 vue父组件和子组件
    515 vue全局组件和局部组件
    514 vue组件化开发概述,注册组件的基本步骤
    513 v-model:表单绑定,原理,radio,checkbox,select,修饰符,值绑定
    512 高阶函数 filter、map、reduce
  • 原文地址:https://www.cnblogs.com/gytangyao/p/11407213.html
Copyright © 2020-2023  润新知