Jenkins+GitLba针对k8s集群持续集成

本文详细介绍了持续集成、持续交付和持续部署的概念,通过具体步骤展示了如何在k8s集群环境中利用Jenkins和GitLab实现自动化构建、测试及部署流程,涵盖了私有仓库搭建、服务配置、插件安装及webhook设置等关键环节。

持续集成概念

持续集成Continuous Integration

​ 持续集成是指开发者在代码的开发过程中,可以频繁的将代码部署集成到主干,并进程自动化测试

持续交付Continuous Delivery

​ 持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境

持续部署Continuous Deployment

​ 在持续交付的基础上,把部署到生产环境的过程自动化,持续部署和持续交付的区别就是最终部署到生产环境是自动化的

环境准备

k8s集群环境,三台服务器,IP分别为:192.168.1.70(master)、50(node01)、40(node02)

Jenkins+GitLab部署在一台Docker服务器上(192.168.1.30),主要用于向仓库上传私有镜像

环境一共4台服务器,全部指向一个私有仓库,共享Docker镜像

实验所用到的软件都可以在网盘下载: 下载地址

提取码:trv8

验证k8s集群没有问题

[root@master ~]# kubectl  get nodes 
NAME     STATUS   ROLES    AGE   VERSION
master   Ready    master   64d   v1.15.0
node01   Ready    <none>   64d   v1.15.0
node02   Ready    <none>   64d   v1.15.0

首先我们需要做一个registry私有仓库,可以选择任意一台服务器都可以,这里我们选择kubernetes-master作为registry私有仓库

Harbor也是可以的

[root@master ~]# docker run -d --restart=always -p 5000:5000  registry:2
[root@master ~]# vim  /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --insecure-registry  192.168.1.70:5000
[root@master ~]# systemctl  daemon-reload 
[root@master ~]# systemctl  restart  docker
#将nginx镜像上传到私有仓库
[root@master ~]# docker pull  nginx
[root@master ~]# docker tag nginx:latest  192.168.1.70:5000/nginx:v1
[root@master ~]# docker push  192.168.1.70:5000/nginx:v1

node01、node02加入私有仓库,并拉去镜像

#注意实在那台机器上操作
[root@master ~]# scp  /usr/lib/systemd/system/docker.service  node01:/usr/lib/systemd/system/docker.service                                     
[root@master ~]# scp  /usr/lib/systemd/system/docker.service  node02:/usr/lib/systemd/system
[root@node01 ~]# systemctl  daemon-reload 
[root@node01 ~]# systemctl  restart  docker
[root@node02 ~]# systemctl  daemon-reload 
[root@node02 ~]# systemctl  restart  docker
[root@node01 ~]# docker pull   192.168.1.70:5000/nginx:v1
[root@node02 ~]# docker pull   192.168.1.70:5000/nginx:v1

建立yaml配置文件让k8s自己控制容器集群,用来模拟我们部署的服务

[root@master ~]# vim  nginx.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx
spec:
  replicas: 2
  template:
    metadata:
      labels:
        name: nginx
    spec:
      containers:
      - name: nginx
        image: 192.168.1.70:5000/nginx:v1
        imagePullPolicy:  Always
        ports:
        - containerPort: 80
[root@master ~]# kubectl  apply  -f  nginx.yaml 
deployment.extensions/nginx created
[root@master ~]# kubectl  get  deployments.
NAME    READY   UP-TO-DATE   AVAILABLE   AGE
nginx   2/2     2            2           61s
[root@master ~
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值