環境
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關閉防火牆
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
複制
02
安裝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 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倉庫中繼資料
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
複制
03
安裝本機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
複制
04
GitLab環境安裝
在主機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}
複制
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
複制
4.1.4設定GitLab的Root密碼(8位密碼)

登入
05
安裝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 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
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容器
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鏡像
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 <[email protected]>"
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
複制
08
建立GitLab項目
8.1.1建立Group
8.1.2建立項目
8.1.3配置Group環境變量
Key: DOCKER_HUB_REPO Value:192.168.100.10:5000/k8s-ci
複制