本文介绍下"代码提交自动部署到云原生并实时查看服务的运行状态"运行环境的搭建过程

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的运行日志

  • 以及工作负载情况

自动化运维环境搭建过程相关推荐

  1. 自动化运维-ELK搭建

    一.简介: ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana 1.Elasticsearch是个开源分布式搜索引擎,提供搜集.分析.存储数据三大功 ...

  2. ITSM01---自动化运维环境搭建

    1.CMDB的部署--------简单的docer部署方法 1.1安装Docker yum install docker service docker start 1.2部署CMDB---8081是主 ...

  3. 手游无间狱完整源码(开发+运维+环境搭建+GM命令等)

    中文名:无间狱 版 本:1.0 大 小:180.52 MB 类 型:角色扮演 游戏介绍:无间狱 游戏背景是起源于东方武侠世界中最为黑暗的时期,到处出现暗杀.武侠争霸的年代. 无间江湖 设有无间狱榜,一 ...

  4. Linux集群和自动化运维

    Linux/Unix技术丛书 Linux集群和自动化运维 余洪春 著 图书在版编目(CIP)数据 Linux集群和自动化运维/余洪春著. -北京:机械工业出版社,2016.8 (Linux/Unix技 ...

  5. 系统封装工具_去工具化/脚本化理解,自动化运维落地最佳实践之业务/架构/模型/方法...

    本文转载自:互联网运维杂谈 近年来后端IT也呈现更复杂的形态,底层IT架构逐渐开放平台化.云化,上层应用微服务化等等,虚拟化.云平台.容器PaaS和云原生框架都进入到IT运行环境中,而传统业务依然运行 ...

  6. 自动化运维之 安装部署 Ansible 服务

    Ansible 概述 由于互联网的快速发展导致产品更新换代速度逐渐加快,运维人员每天都要进行大量的维护操作,仍旧按照传统方式进行维护使得工作效率低下.这是,部署自动化运维就可以尽可能的安全.高效地完成 ...

  7. 自动化运维之ansible-安装部署与基础命令篇

    一.Ansible简介 Ansible基于Python语言开发,集合了众多优秀运维工具的优点,实现了批量运行命令.部署程序.配置系统等功能. 二.安装部署Ansible服务 Ansible自动化运维环 ...

  8. python与linux系统运维_《Python Linux系统管理与自动化运维》碎碎念

    在此记录学习<Python Linux系统管理与自动化运维>的过程 感觉碎碎念全放在一篇文章里编辑时太乱,于2020年12月16日重新分开整理. 2020年12月13日,看了一下需要学习的 ...

  9. 从零搭建一个自动化运维体系

    作者简介: 胥峰,著有畅销书<Linux运维最佳实践>.译著<DevOps:软件架构师行动指南>,资深运维专家,有 11 年运维经验,在业界颇具威望和影响力.2006 年毕业于 ...

最新文章

  1. javascript a 标签打开相对路径,绝对路径
  2. python 加密和解密
  3. java mysql insert_MySQL中INSERT的一般用法
  4. winfrom里面使用类似于table的合并的控件_Flink集成iceberg数据湖之合并小文件
  5. uniapp在低版本android,uni-app离线打包Android平台注意事项
  6. Openlayers中设置定时绘制和清理直线图层
  7. MySQL添加中文记录报错解决方法
  8. myjdbc链接数据库.增删改查
  9. java 无开发环境时在记事本中编写的方法与命令行运行java代码
  10. 朗读评价语言集锦_表扬朗读好的评语简短
  11. caxa 二次开发 应用程序框架分析
  12. python爬虫爬取豆瓣电影为啥内容有缺失-Python爬虫之抓取豆瓣影评数据
  13. linux ntp时间立即同步命令_linux时间同步,ntpd、ntpdate 【转】
  14. 投资,什么是真正的风险?
  15. YYlabelCopy
  16. 物联网的七大通信协议
  17. 使用IDEA如何将项目打包成war包
  18. 解析Hander消息处理机制
  19. button type属性
  20. 三节课-产品视角养成

热门文章

  1. Java命名规范(建议收藏)
  2. php 单例模式 构函数,PHP设计模式——单例模式(Singleton Pattern)
  3. 如何让char不要忽略开头的空格_如何使用C语言实现JSON解析库(二)
  4. 又推亲儿子,苹果与国际权威机构推出 Swift 资格认证
  5. 线程Thread类的start()方法和run()方法
  6. 20165318 结对编程项目-四则运算 阶段总结
  7. Elasticsearch集群监控工具bigdesk插件安装
  8. 状压DP UVA 10817 Headmaster's Headache
  9. android 开源项目列表【持续整理中。。。】
  10. rsync和inotify实时同步配置 exclude排除多个文件夹