自动化运维场景(自动化运维环境搭建过程)
本文介绍下"代码提交自动部署到云原生并实时查看服务的运行状态"运行环境的搭建过程
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
官方部署文档
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
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的运行日志
- 以及工作负载情况
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com