自动化运维环境搭建过程
本文介绍下"代码提交自动部署到云原生并实时查看服务的运行状态"运行环境的搭建过程
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 installgitlab-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-1docker pull eipwork/kuboard:v3
docker tag eipwork/etcd-host:3.4.16-1 127.0.0.1:5000/eipwork/etcd-host:3.4.16-1docker 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:v3docker 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 nodekubectl describe node docker-desktop|grep InternalIP
将上面获取的信息配置到页面中
集群导入成功之后 就可以查看集群内容了
选择一个身份进去集群
选择一个命名空间
就可以看到这个命名空间下的集群运行情况了
可以查看某一个pod的运行日志
以及工作负载情况
自动化运维环境搭建过程相关推荐
- 自动化运维-ELK搭建
一.简介: ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana 1.Elasticsearch是个开源分布式搜索引擎,提供搜集.分析.存储数据三大功 ...
- ITSM01---自动化运维环境搭建
1.CMDB的部署--------简单的docer部署方法 1.1安装Docker yum install docker service docker start 1.2部署CMDB---8081是主 ...
- 手游无间狱完整源码(开发+运维+环境搭建+GM命令等)
中文名:无间狱 版 本:1.0 大 小:180.52 MB 类 型:角色扮演 游戏介绍:无间狱 游戏背景是起源于东方武侠世界中最为黑暗的时期,到处出现暗杀.武侠争霸的年代. 无间江湖 设有无间狱榜,一 ...
- Linux集群和自动化运维
Linux/Unix技术丛书 Linux集群和自动化运维 余洪春 著 图书在版编目(CIP)数据 Linux集群和自动化运维/余洪春著. -北京:机械工业出版社,2016.8 (Linux/Unix技 ...
- 系统封装工具_去工具化/脚本化理解,自动化运维落地最佳实践之业务/架构/模型/方法...
本文转载自:互联网运维杂谈 近年来后端IT也呈现更复杂的形态,底层IT架构逐渐开放平台化.云化,上层应用微服务化等等,虚拟化.云平台.容器PaaS和云原生框架都进入到IT运行环境中,而传统业务依然运行 ...
- 自动化运维之 安装部署 Ansible 服务
Ansible 概述 由于互联网的快速发展导致产品更新换代速度逐渐加快,运维人员每天都要进行大量的维护操作,仍旧按照传统方式进行维护使得工作效率低下.这是,部署自动化运维就可以尽可能的安全.高效地完成 ...
- 自动化运维之ansible-安装部署与基础命令篇
一.Ansible简介 Ansible基于Python语言开发,集合了众多优秀运维工具的优点,实现了批量运行命令.部署程序.配置系统等功能. 二.安装部署Ansible服务 Ansible自动化运维环 ...
- python与linux系统运维_《Python Linux系统管理与自动化运维》碎碎念
在此记录学习<Python Linux系统管理与自动化运维>的过程 感觉碎碎念全放在一篇文章里编辑时太乱,于2020年12月16日重新分开整理. 2020年12月13日,看了一下需要学习的 ...
- 从零搭建一个自动化运维体系
作者简介: 胥峰,著有畅销书<Linux运维最佳实践>.译著<DevOps:软件架构师行动指南>,资深运维专家,有 11 年运维经验,在业界颇具威望和影响力.2006 年毕业于 ...
最新文章
- javascript a 标签打开相对路径,绝对路径
- python 加密和解密
- java mysql insert_MySQL中INSERT的一般用法
- winfrom里面使用类似于table的合并的控件_Flink集成iceberg数据湖之合并小文件
- uniapp在低版本android,uni-app离线打包Android平台注意事项
- Openlayers中设置定时绘制和清理直线图层
- MySQL添加中文记录报错解决方法
- myjdbc链接数据库.增删改查
- java 无开发环境时在记事本中编写的方法与命令行运行java代码
- 朗读评价语言集锦_表扬朗读好的评语简短
- caxa 二次开发 应用程序框架分析
- python爬虫爬取豆瓣电影为啥内容有缺失-Python爬虫之抓取豆瓣影评数据
- linux ntp时间立即同步命令_linux时间同步,ntpd、ntpdate 【转】
- 投资,什么是真正的风险?
- YYlabelCopy
- 物联网的七大通信协议
- 使用IDEA如何将项目打包成war包
- 解析Hander消息处理机制
- button type属性
- 三节课-产品视角养成
热门文章
- Java命名规范(建议收藏)
- php 单例模式 构函数,PHP设计模式——单例模式(Singleton Pattern)
- 如何让char不要忽略开头的空格_如何使用C语言实现JSON解析库(二)
- 又推亲儿子,苹果与国际权威机构推出 Swift 资格认证
- 线程Thread类的start()方法和run()方法
- 20165318 结对编程项目-四则运算 阶段总结
- Elasticsearch集群监控工具bigdesk插件安装
- 状压DP UVA 10817 Headmaster's Headache
- android 开源项目列表【持续整理中。。。】
- rsync和inotify实时同步配置 exclude排除多个文件夹