Jenkins+K8s实现持续集成

Jenkins+K8s实现持续集成

1. 介绍

1.1 案例

  • 使用Jenkins自动化编译、打包、发布一个Spring Boot项目
  • docker + k8s + 持续继承 + Jenkins

1.2 实验环境规划

  • k8sMaster
  • k8sNode + Jenkins + Registry

1.3 虚拟机安装配置

  • 设置桥接模式
  • 设置root密码
  • 设置ssh root连接
  • 关闭防火墙
  • 设置主机名: vim /etc/hostname

2. Docker

1.1 介绍

  • 一种容器技术

容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。开发人员在笔记本上创建并测试好的容器,无需任何修改就能在生成系统的虚拟机、物理服务器或公有云主机上运行

  • 由来

容器来源于集装箱,即Container,解决了运输的难题。docker的中文意思就是码头工人

  • 虚拟机vs容器
    虚拟机vs容器

  • 特点

    • 轻量级、可移植、资源占用少
    • 对开发人员: Build once, run anywhere
    • 对运维人员: Configure once, run anything
  • Docker架构
    Docker架构

1.2 安装配置

安装与校验

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start 
docker version

配置镜像加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://odkq9fob.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

1.3 基本使用

  • Docker基本概念

    • 镜像image、容器container、仓库register

    • 仓库分公有和私有。Docker hub是默认的仓库:hub.docker.com

  • 基本操作

操作 命令
版本查看 docker version
镜像拉取 docker pull mysql:5.6
镜像查询 docker images
镜像删除 docker rmi mysql:5.6
容器运行 docker run -p 3306:3306 --name mymysql -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
容器名称 --name mymysql
端口映射 -p 3306:3306
挂存储卷 -v /home/mysql/data:/var/lib/mysql
查看运行的容器 docker ps
进入容器 docker exec -it 容器id /bin/bash
退出容器 exit
查看容器日志 docker logs -f 容器id
查询所有容器 docker ps -a
设置环境变量 -e MYSQL_ROOT_PASSWORD=123456
容器停止 docker stop 容器id
容器删除 docker rm 容器id
仓库登录 docker login --username=563019158@qq.com registry.cn-hangzhou.aliyuncs.com
镜像构建 docker build -t 镜像名:tag -f dockerfile路径
镜像打tag docker tag mysql:5.6 myregistry/mymysql:1.0
镜像推送 docker push myregistry/mymysql:1.0
  • Dockerfile基本语法

FROM、RUN、CMD、ENTRYPOINT、EXPOSE
实例

3. K8S

4. 持续集成与Jenkins

5. Jenkins+K8s发布实例

6. 总结

原文地址:https://www.cnblogs.com/wnzhong/p/12096245.html