前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Springcloud +Gitlab+ Rancher2.0+Kubernetes微服务持续集成

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

作者头像
用户4044670
发布2020-03-02 10:12:04
1.1K0
发布2020-03-02 10:12:04
举报
文章被收录于专栏:安徽开发者圈
环境

Centos7.0

准备工作

序号

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

01

网络设置

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

1.1.1关闭防火墙

代码语言:javascript
复制
systemctl stop firewalld && systemctl disable firewalld

1.1.2设置路由转发

代码语言:javascript
复制
vi /etc/sysctl.conf     #添加     
net.ipv4.ip_forward=1
sysctl -p

1.1.3修改主机名称

代码语言:javascript
复制
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编写主机文件

代码语言:javascript
复制
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

02

安装Docker

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

2.1.1清除非官方的Docker软件包

代码语言:javascript
复制
yum -y remove docker docker-common container-selinux

2.1.2安装yum-utils工具包

代码语言:javascript
复制
yum install -y yum-utils

2.1.3配置docker所需yum源

代码语言:javascript
复制
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
cd /etc/yum.repos.d/ ls     #至少保留这三个yum源     
CentOS-Base.repo  CentOS-Media.repo  docker-ce.repo

2.1.4更新yum仓库元数据

代码语言:javascript
复制
yum clean all  
yum makecache fast

2.1.5安装docker

代码语言:javascript
复制
yum -y install docker-ce

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

代码语言:javascript
复制
systemctl enable docker && systemctl start docker  
docker -v

2.1.7将所有docker服务指向Master端

代码语言:javascript
复制
vim /etc/docker/daemon.json
{       
 "insecure-registries" : ["192.168.100.10:5000"]
}
systemctl restart docker

03

安装本机Docker库

在主机A(gitlab)上操作

3.1.1运行docker容器

代码语言:javascript
复制
docker run -d -p 5000:5000 --restart=always --name registry -v /mnt/registry:/var/lib/registry registry:latest

3.1.2查看私有仓库中现有的镜像

代码语言:javascript
复制
curl -XGET http://192.168.100.10:5000/v2/_catalog

04

GitLab环境安装

在主机A(gitlab)上操作

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

代码语言:javascript
复制
docker pull gitlab/gitlab-ce

4.1.2创建GitLab存储目录

代码语言:javascript
复制
mkdir -vp /home/huiyi/gitlab/{data,logs,config}

4.1.3运行GitLab

代码语言:javascript
复制
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

4.1.4设置GitLab的Root密码(8位密码)

登录

05

安装GitLab Runner(两种方法)

在主机A(gitlab)上操作

方法一:

5.1.1安装Runner

代码语言:javascript
复制
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安装进入容器

代码语言:javascript
复制
docker exec -it gitlab-runner bash

5.1.3修改容器内hosts文件

代码语言:javascript
复制
vi /etc/hosts
192.168.100.10 gitlab

5.1.4获取Runner Token

5.1.5在容器内注册runner

代码语言:javascript
复制
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文件

代码语言:javascript
复制
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官方库

代码语言:javascript
复制
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash

5.2.2安装Runner

yum install gitlab-runner

5.2.3获取Runner Token

5.2.4注册Runner

代码语言:javascript
复制
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检查结果

06

安装rancher集群

在主机B(rancher)上操作

6.1.1启动rancher容器

代码语言:javascript
复制
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节点

07

镜像准备

在主机A(gitlab)上操作

7.1.1创建Aliyun Maven Docker镜像

代码语言:javascript
复制
cd /home/

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

代码语言:javascript
复制
cd ali-maven-docker/
ls
daemon.json  Dockerfile  settings.xml
vi daemon.json
{
          "insecure-registries" : ["192.168.100.10:5000"]      #修改为gitlab地址    
 }

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

代码语言:javascript
复制
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镜像

代码语言:javascript
复制
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创建镜像,提交到私有仓库

代码语言:javascript
复制
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镜像

代码语言:javascript
复制
docker pull fancybing/java:serverjre-8

08

创建GitLab项目

8.1.1创建Group

8.1.2创建项目

8.1.3配置Group环境变量

代码语言:javascript
复制
 Key: DOCKER_HUB_REPO     Value:192.168.100.10:5000/k8s-ci

8.1.4提交项目

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 安徽开发者圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1.1关闭防火墙
  • 1.1.2设置路由转发
  • 1.1.3修改主机名称
  • 1.1.4编写主机文件
  • 2.1.1清除非官方的Docker软件包
  • 2.1.2安装yum-utils工具包
  • 2.1.3配置docker所需yum源
  • 2.1.4更新yum仓库元数据
  • 2.1.5安装docker
  • 2.1.6启动docker服务,查看docker版本信息
  • 2.1.7将所有docker服务指向Master端
  • 3.1.1运行docker容器
  • 3.1.2查看私有仓库中现有的镜像
  • 4.1.1用docker将GitLat CE版镜像拉到本地
  • 4.1.2创建GitLab存储目录
  • 4.1.3运行GitLab
  • 4.1.4设置GitLab的Root密码(8位密码)
    • 登录
    • 5.1.1安装Runner
    • 5.1.2安装进入容器
    • 5.1.3修改容器内hosts文件
    • 5.1.4获取Runner Token
    • 5.1.5在容器内注册runner
    • 5.1.6修改容器内runner文件
    • 5.1.7开启运行未标记的作业
    • 5.1.8检查结果
    • 5.2.1添加 GitLab官方库
    • 5.2.2安装Runner
    • 5.2.3获取Runner Token
    • 5.2.4注册Runner
    • 5.2.5检查结果
    • 6.1.1启动rancher容器
    • 6.1.2打开网页认证
    • 6.1.3设置密码
    • 6.1.4确认本机url地址
    • 6.1.5设置语言
    • 6.1.6创建K8S集群
    • 7.1.1创建Aliyun Maven Docker镜像
    • 7.1.2创建镜像,提交到私有仓库
    • 7.2.1创建Kubectl镜像
    • 7.3.1创建Oracle JAVA镜像
    • 8.1.1创建Group
    • 8.1.3配置Group环境变量
    • 8.1.4提交项目
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档