本文介绍下"代码提交自动部署到云原生并实时查看服务的运行状态"运行环境的搭建过程
k8s方式安装gitlab
下载gitlab yaml文件
git clone https://gitee.com/pingfanrenbiji/gitlab
安装postgresql、redis、gitlab
-
镜像下载
docker pull sameersbn/postgresql:10
docker pull sameersbn/redis
docker pull sameersbn/gitlab:11.8.1
-
k8s部署
kubectl apply -f .
gitlab还在启动中
查看启动情况
kubectl logs -f gitlab-7cc4bd85ff-459lf -n kube-ops
查看启动情况
截止目前都启动成功了
gitlab的ingress域名是gitlab.demo.com
暴露的http.nodePort端口是30003
所以可以通过
http://gitlab.demo.com:30003
访问
账号:root/admin321
域名配置
sudo vim /etc/hosts
172.16.0.114 gitlab.demo.com
访问url是http://gitlab.demo.com:30003
是否可以直接通过域名访问呢即http://gitlab.demo.com
那么就需要通过nginx做下代理转发
docker run --name=nginx --volume=/opt/docker/nginx03/html:/usr/share/nginx/html --volume=/opt/docker/nginx03/conf/nginx.conf:/etc/nginx/nginx.conf --volume=/opt/docker/nginx03/conf/conf.d:/etc/nginx/conf.d --volume=/opt/docker/nginx03/logs:/var/log/nginx -p 443:443 -p 81:81 -d nginx
mengfaniaodeMBP:nginx03 mengfanxiao$ cat conf/conf.d/gitlab.conf
server{
server_name gitlab.demo.com ;
access_log /var/log/nginx/gitlab.access.log main;
error_log /var/log/nginx/gitlab.error.log notice;
location / {
proxy_pass http://gitlab.demo.com:30003/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
这样就可以通过http://gitlab.demo.com/域名直接访问了
查看gitlab-runner所需的配置信息
-
gitlab地址 http://gitlab.demo.com/ -
token BZncyg6pxxN6ugtKzFnm
二进制方式部署gitlab-runner
官方部署文档
https://docs.gitlab.com/runner/install/osx.html
我是在本地mac环境部署的 其他操作系统请自行选择安装版本
# 下载二进制文件
sudo curl --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64"
# 设置执行权限
sudo chmod +x /usr/local/bin/gitlab-runner
# 启动
gitlab-runner install
gitlab-runner start
查看启动情况
在gitlab-runner注册gitlab
gitlab-runner register
这里需要注意 如果gitlab地址写成http://gitlab.demo.com/
那么就说明 gitlab-runner访问gitlab是通过nginx访问的
这里建议直接访问gitlab不经过nginx即gitlab地址写成
http://gitlab.demo.com:30003/
注册成功之后就可以在gitlab上看到gitlab-runner这个执行器了
创建新的仓库
比较简单具体就不演示了
这里需要说一点就是
本地代码可以直接上传到gitlab
而不经过nginx
因为nginx对于http请求的限制可能会影响代码的提交
# 在项目跟目录下
git config -e
安装docker镜像仓库
docker run --name=registry --volume=/opt/docker/registry:/var/lib/registry -p 5000:5000 -d --restart=always registry
编写gitlab-ci.yaml文件
https://gitee.com/pingfanrenbiji/gitlab/blob/master/.gitlab-ci.yml
配置maven环境变量
定义自动化部署的四个阶段
-
源码maven编译
通过mvn clean pacakge命令对源码进行编译打包
-
docker镜像生成
通过docker build 生成docker镜像文件
-
将docker镜像推送到镜像仓库
将镜像文件推送到镜像仓库
-
k8s部署
通过k8s部署服务
这里指定的是提交到release分支 会自动触发gitlab-ci部署
一个流程包含4个阶段或4个任务
安装kuboard
https://gitee.com/pingfanrenbiji/gitlab/blob/master/kuboard-v3.yaml
下载镜像并上传到本地仓库
docker pull eipwork/etcd-host:3.4.16-1
docker pull eipwork/kuboard:v3
docker tag eipwork/etcd-host:3.4.16-1 127.0.0.1:5000/eipwork/etcd-host:3.4.16-1
docker push 127.0.0.1:5000/eipwork/etcd-host:3.4.16-1
docker tag eipwork/kuboard:v3 127.0.0.1:5000/eipwork/kuboard:v3
docker push 127.0.0.1:5000/eipwork/kuboard:v3
启动kuboard
kubectl apply -f kuboard-v3.yaml
查看启动结果
kubectl get pod -n kuboard
访问kuboard
http://localhost:30080/
admin/Kuboard123
导入现有的k8s集群
-
查看k8s集群配置
cat ~/.kube/config
-
查看集群所在node的ip
kubectl get node
kubectl describe node docker-desktop|grep InternalIP
-
将上面获取的信息配置到页面中
集群导入成功之后 就可以查看集群内容了
-
选择一个身份进去集群
-
选择一个命名空间
-
就可以看到这个命名空间下的集群运行情况了
-
可以查看某一个pod的运行日志
-
以及工作负载情况