对于我正在进行的项目,我们需要在AWS环境中创建一个Jenkins节点。对于这个任务,我们将使用https://github.com/jenkinsci/docker-ssh-slave上可用的docker映像。Jenkins节点将负责执行AWS命令,这些命令只能在AWS环境中执行(而不是在外部)。
这位詹金斯大师正在我们当地的环境中运行。我们将在Jenkins主服务器中将该节点添加为永久节点。Jenkins主服务器不负责设置Jenkins节点,因为它没有权限这样做(这是在AWS中管理的)。
但是,我们希望监视AWS中的Jenkins奴隶,看看它是否仍然成功运行。与其他码头集装箱,我们也暴露了一个健康检查。如果健康检查失败,码头容器将被视为不健康,并相应地重新启动。就像我们对待其他码头集装箱一样,我们也希望在詹金斯奴隶号上暴露这样一个健康港。如果它不再响应,AWS将重新启动码头容器,并且我们有一个稳定的系统。
我们已经探索了Nagios监视,但是它似乎暴露了主服务器中的健康状态,而不是直接暴露在从服务器中。
它可用吗?或者我们如何添加这样的功能?你能把我们引向正确的方向,或者推荐需要安装的插件吗?
发布于 2019-08-18 11:40:11
在我看来,你似乎是在尝试重新发明轮子。据我所知,如果健康检查失败,您希望重新启动容器。在使用docker时,在我看来,您应该使用一个编排平台,比如Fargate (ECS)或Kubernetes (k8s)。我从后者得知,可以定义健康检查,如准备状态和健康探测。如果健康检查失败,kubernetes将重新启动POD (自动愈合)。
您可能会认为k8s不是一种选择。如果是这样的话,您还可以查看AWS OpsWorks。虽然我还没有亲自尝试,但它也能自动愈合。
发布于 2021-03-04 19:48:03
看看这个Jenkins插件:https://plugins.jenkins.io/slave-status/
它将公开健康检查端点+端口3141上的内存等其他信息(您可以配置自定义端口)。然后,您可以ping该健康检查端点,并将数据发送到CloudWatch。
https://devops.stackexchange.com/questions/4336
复制相似问题