”微服务一条龙“最佳指南-疑问篇:Supervisor和Gitlab-Runner真烦

最佳指南.jpg

这是”微服务一条龙“的项目第一篇,接下来的一段时间我会结合公司最近在做的小项目来给大家实际讲一下小项目如何使用上这两年流行的微服务docker云部署自动化集成这些让人感觉触不可及的东西。

  1. 项目背景
最近小组有个小项目,是将之前的Pythonscrapy爬虫给做一下初步重构,由我和另外一位同事共同开发,我们分别实现爬虫的Worker端和调度系统的Scheduler端,大概意思就是给各个爬虫脚本至上包上一层“外套”,作为Worker,接收调度端的任务,调度对应的爬虫,具体的我们在接下来的一段时间会详细给大家来介绍,另外,如果大家有更好的想法,欢迎来一起讨论。
  1. 遇到问题
PS:今天刚刚完成了Worker的初版,前后大概用了两周,最终实现的还是一个很简单的功能,很惭愧啊!
说回问题,今天在做Worker部署时需要Worker动态加载Spider模块中所有爬虫模块(其实他们就是一些脚本,导入的时候使用了Python动态导入的功能),目前Spider目录只是通过Gitlab-Ci工具Gitlab-Runner来做一个自动集成,自动更新服务器上面的目录而已,很LOW是不是,是不是想吐槽。Gitlab-Runner部署测试好之后,就要思考一个问题,“Gitlab-Runner如何保证始终处于运行状态以及出错之后怎么自动重启”其实归根结底就是一个问题如何保证Gitlab-Runner稳定性。
于是想到了之前经常用的工具--Supervisor这个工具是由Python编写的一个可以将程序转化为系统后台程序的工具,有点类似于Systemctl将程序变为内置程序,由系统进行操作,启动或者结束,部署的过程很简单,按照官网的教程,一步步实现、安装。直到遇到问题,按照Supervisor启动的Gitlab-Runner程序不能接受新的任务,怎么回事????

3.分析问题

(1) 直接启动Gitlab-Runner可以使用吗?
(2)Supervisor启动Gitlab-Runner的脚本是否有问题?
(3)Supervisor启动的Gitlab-Runner是否运行正常?
我们按照正常逻辑来考虑

首先这个由Supervisor启动的程序是否正常,运行supervisorctl status我们可以发现,它是正常运行的,我们再看看ps aux / grep gitlab中gitlab程序是否是正常,结果我们可以发现启动该进程的是ROOT用户,我们不知道这个是不是正常,但是可以先留着之后作为证据。
第二步,我们看看直接启动Gitlab-Runner可以接受任务吗,我们直接gitlab-runner run结果发现,这是可以正常接收任务的,我们再来看看进程情况,同样ps aux / grep gitlab,看看两次有何不同,结果发现了只是执行用户不同,不同的执行用户影响这么大?,我们看看官方文档,还是不太理解,为什么非ROOT用户起的进程就可以接受任务?这个问题其实一直没有解决,希望热心网友能够给解决一下,下面说一下我的处理办法,我是根据修改Supervisor的程序配置,也就是Gitlab-Runner的启动方式来修改使其成为非ROOT用户启动最终解决问题的,gitlab-runner run -c config.toml -u user这样的话,启动的程序自然是普通用户,不过最后疑问还是没解决。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,773评论 19 139
  • 一、持续集成(Continuous Integration) 要了解GitLab-CI与GitLab Runner...
    tsyeyuanfeng阅读 98,326评论 17 134
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,827评论 25 709
  • 文/凤墨染 【第二十七章】血域玄冰 本来想叫紫澜出去看看,但紫澜见着银月的外袍已经被烧了个干净,身上的小火苗正蠢蠢...
    凤墨染阅读 3,805评论 10 8
  • UI将从web(用户)、移动(app和H5)和管理后台三个方面进行阐述。通知通知,就是让消息第一时间到达,让用户第...
    贾老师和他的朋友们阅读 3,914评论 0 0