自动化运维环境搭建过程
本文介绍下"代码提交自动部署到云原生并实时查看服务的运行状态"运行环境的搭建过程
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所需的配置信息
官方部署文档
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请求的限制可能会影响代码的提交
# 在项目跟目录下安装docker镜像仓库
git config -e
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环境变量
定义自动化部署的四个阶段
通过mvn clean pacakge命令对源码进行编译打包
docker镜像生成通过docker build 生成docker镜像文件
将docker镜像推送到镜像仓库将镜像文件推送到镜像仓库
k8s部署通过k8s部署服务
这里指定的是提交到release分支 会自动触发gitlab-ci部署
一个流程包含4个阶段或4个任务
安装kuboardhttps://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集群
cat ~/.kube/config查看集群所在node的ip
kubectl get node将上面获取的信息配置到页面中
kubectl describe node docker-desktop|grep InternalIP
集群导入成功之后 就可以查看集群内容了
版权声明
本文仅代表作者观点,不代表博信信息网立场。