Springcloud +Gitlab+ Rancher2.0+Kubernetes微服务持续集成****
| 序号 | IP地址 | 主机名称 | 角色 |
|---|---|---|---|
| A | 192.168.100.10 | gitlab | gitlab、gitlab-runner、docker本地仓库、(K8S-Master) |
| B | 192.168.100.11 | rancher | rancher、k8s节点服务器1 |
| C | 192.168.100.12 | node1 | k8s节点服务器2 |
| D | 192.168.100.13 | node2 | k8s节点服务器3 |
| E | 192.168.100.14 | node3 | k8s节点服务器4 |
1.网络设置****
1.1.1关闭防火墙****
systemctl stop firewalld && systemctl disable firewalld
1.1.2设置路由转发****
net.ipv4.ip_forward=1
sysctl -p
1.1.3修改主机名称****
hostnamectl set-hostname gitlab 针对A主机
bash
hostnamectl set-hostname rancher 针对B主机
bash
hostnamectl set-hostname node1 针对C主机
bash
hostnamectl set-hostname node2 针对D主机
bash
hostnamectl set-hostname node3 针对E主机
bash
1.1.4编写主机文件****
192.168.100.10 gitlab
192.168.100.11 rancher
192.168.100.12 node1
192.168.100.13 node2
192.168.100.14 node3
2安装Docker****
2.1.1清除非官方的Docker软件包****
yum -y remove docker docker-common container-selinux
2.1.2安装yum-utils工具包****
2.1.3配置docker所需yum源****
yum-config-manager --add-repo mirrors.aliyun.com/docker-ce/l…
cd /etc/yum.repos.d/ ls #至少保留这三个yum源
CentOS-Base.repo CentOS-Media.repo docker-ce.repo
2.1.4更新yum仓库元数据****
yum makecache fast
2.1.5安装docker****
2.1.6启动docker服务,查看docker版本信息****
systemctl enable docker && systemctl start docker
docker -v
2.1.7将所有docker服务指向Master端****
{
"insecure-registries" : ["192.168.100.10:5000"]
}
systemctl restart docker
3安装本机Docker库****
3.1.1运行docker容器****
docker run -d -p 5000:5000 --restart=always --name registry -v /mnt/registry:/var/lib/registry registry:latest
3.1.2查看私有仓库中现有的镜像****
curl -XGET http://192.168.100.10:5000/v2/_catalog
4GitLab环境安装****
4.1.1用docker将GitLat CE版镜像拉到本地****
4.1.2创建GitLab存储目录****
mkdir -vp /home/huiyi/gitlab/{data,logs,config}
mkdir -vp /home/muchen/gitlab/{data,logs,config}
4.1.3运行GitLab****
docker run -d -h 192.168.100.10 -p 443:443 -p 80:80 -p 1022:22 --name gitlab --restart always -v /home/huiyi/gitlab/config:/etc/gitlab -v /home/huiyi/gitlab/logs:/var/log/gitlab -v /home/huiyi/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest
docker run -d -h 115.29.203.79 -p 443:443 -p 80:80 -p 1022:22 --name gitlab --restart always -v /home/muchen/gitlab/config:/etc/gitlab -v /home/muchen/gitlab/logs:/var/log/gitlab -v /home/muchen/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest
4.1.4设置GitLab的Root密码(8位密码)****
登录****
5安装GitLab Runner (两种方法)****
方法一:****
5.1.1安装Runner****
docker run -d --name gitlab-runner --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner:latest
5.1.2安装 进入容器****
docker exec -it gitlab-runner bash
5.1.3 修改容器内hosts文件****
vi /etc/hosts
192.168.100.10 gitlab
5.1.4获取Runner Token****
5.1.5 在容器内注册runner****
gitlab-runner register --non-interactive --executor "docker" --docker-image "192.168.100.10:5000/ali-maven-docker:3.5.4-jdk-8-alpine" --url "http://192.168.100.10/" --registration-token " " --description "Docker runner" --tag-list "shared-runner" --run-untagged --locked="false" --docker-privileged="false"
5.1.6 修改容器内runner文件****
vi /etc/gitlab-runner/config.toml
concurrent = 1
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "Docker runner"
url = "http://192.168.100.10/"
token = "pXzFUNrSrwrx3552fHac"
executor = "docker"
[runners.custom_build_dir]
[runners.docker]
tls_verify = false
image = "192.168.100.10:5000/ali-maven-docker:3.5.4-jdk-8-alpine"
privileged = false
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache", "/home/huiyi/.m2:/root/.m2"] #修改
shm_size = 0
pull_policy = "if-not-present" #添加
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
5.1.7 开启运行未标记的作业****
5.1.8检查结果****
方法二****
5.2.1添加 GitLab官方库****
curl -L packages.gitlab.com/install/rep… | sudo bash
5.2.2安装Runner****
yum install gitlab-runner
5.2.3获取Runner Token****
****
5.2.4注册Runner****
gitlab-runner register --non-interactive --executor "docker" --docker-image "192.168.100.10:5000/ali-maven-docker:3.5.4-jdk-8-alpine" --url "http://192.168.100.10/" --registration-token " " --description "Docker runner" --tag-list "shared-runner" --run-untagged --locked="false" --docker-privileged="false"
vi /etc/gitlab-runner/config.toml
concurrent = 1
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "Docker runner"
url = "http://192.168.100.10/"
token = "pXzFUNrSrwrx3552fHac"
executor = "docker"
[runners.custom_build_dir]
[runners.docker]
tls_verify = false
image = "192.168.100.10:5000/ali-maven-docker:3.5.4-jdk-8-alpine"
privileged = false
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache", "/home/huiyi/.m2:/root/.m2"] #修改
shm_size = 0
pull_policy = "if-not-present" #添加
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
5.2.5检查结果****
****
6安装rancher集群****
6.1.1启动rancher容器****
docker run -d --restart=unless-stopped -v /data:/var/lib/rancher/ -p 80:80 -p 443:443 rancher/rancher
6.1.2打开网页认证****
6.1.3设置密码****
6.1.4确认本机url地址****
6.1.5设置语言****
6.1.6创建K8S集群****
7镜像准备****
在主机A(gitlab)上操作
7.1.1创建Aliyun Maven Docker镜像****
将附件一中的文件放到该用户目录下
cd ali-maven-docker/
ls
daemon.json Dockerfile settings.xml
vi daemon.json
{
"insecure-registries" : ["192.168.100.10:5000"] #修改为gitlab地址
}
7.1.2创建镜像,提交到私有仓库****
docker build -t 192.168.100.10:5000/ali-maven-docker:3.5.4-jdk-8-alpine .
docker push 192.168.100.10:5000/ali-maven-docker:3.5.4-jdk-8-alpine
7.2.1创建 Kubectl 镜像****
mkdir -pv /root/.kube/config/kubectl/
cd /root/.kube/config/kubectl/
vi Dockerfile
FROM lachlanevenson/k8s-kubectl:v1.11.0
LABEL maintainer="huiyi Name huiyi.N@gmail.com"
ENV KUBE_LATEST_VERSION="v1.11.0"
ADD admin.conf /root/.kube/config
WORKDIR /root
vi admin.conf
复制rancher创建的连接信息
docker build -t 192.168.100.10:5000/kubectl:1.11.0 .
docker push 192.168.100.10:5000/kubectl:1.11.0
7.3.1创建Oracle JAVA镜像****
docker pull fancybing/java:serverjre-8
8.1.1创建Group****
8.1.3配置Group环境变量****
Key: DOCKER_HUB_REPO Value:192.168.100.10:5000/k8s-ci