Springcloud +Gitlab+ Rancher2.0+Kubernetes微服务持续集成

402 阅读4分钟

Springcloud +Gitlab+ Rancher2.0+Kubernetes微服务持续集成****

序号IP地址主机名称角色
A192.168.100.10gitlabgitlab、gitlab-runner、docker本地仓库、(K8S-Master)
B192.168.100.11rancherrancher、k8s节点服务器1
C192.168.100.12node1k8s节点服务器2
D192.168.100.13node2k8s节点服务器3
E192.168.100.14node3k8s节点服务器4

1.网络设置****

以下设置需要在所有主机上设置

1.1.1关闭防火墙****

systemctl stop firewalld && systemctl disable firewalld

1.1.2设置路由转发****

vi /etc/sysctl.conf     #添加     

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编写主机文件****

vim /etc/hosts     #添加     

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工具包****

yum install -y 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 clean all  

yum makecache fast

2.1.5安装docker****

yum -y install docker-ce

2.1.6启动docker服务,查看docker版本信息****

 systemctl enable docker && systemctl start docker  

docker -v

2.1.7将所有docker服务指向Master端****

vim /etc/docker/daemon.json

{       

 "insecure-registries" : ["192.168.100.10:5000"]

}

systemctl restart docker

3安装本机Docker库****

在主机A(gitlab)上操作

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环境安装****

在主机A(gitlab)上操作

4.1.1用docker将GitLat CE版镜像拉到本地****

docker pull gitlab/gitlab-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 (两种方法)****

在主机A(gitlab)上操作

方法一:****

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集群****

在主机B(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集群****

 

 

 

 

6.1.7添加服务器主机

 

 

等待集群自动部署

 

主节点以及部署完成,等待worker节点

 

7镜像准备****

在主机A(gitlab)上操作

7.1.1创建Aliyun Maven Docker镜像****

cd /home/

将附件一中的文件放到该用户目录下

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创建的连接信息

7.2.2创建镜像,提交到私有仓库

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创建GitLab项目

8.1.1创建Group****

 

 

8.1.2创建项目

 

 

 

 

 

8.1.3配置Group环境变量****

 

 

Key: DOCKER_HUB_REPO     Value:192.168.100.10:5000/k8s-ci

8.1.4提交项目****