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容器
-
特点
- 轻量级、可移植、资源占用少
- 对开发人员: Build once, run anywhere
- 对运维人员: Configure once, run anything
-
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