群集管理器
vmshepherd的Python项目详细描述
vmshepherd
简介
vmshepherd是一个帮助您维护虚拟机组(集群)的应用程序。它通过检查iaas层中的状态来保留定义的参数(如计数、图像等),并使用指定的运行状况检查测试底层服务。
架构
vmshepherd被设计成易于扩展的插件。由 python3 及其 异步 模块授权,以便于扩展。下图显示了应用程序的基本组件。
- 预置管理器 负责获取集群规范/定义(预置)。内置预设: DirectoryDriver 和 GitrepDriver
- 运行时管理器 公开锁定预设的功能,并保存中间状态。当前可用: InMemoryDriver , PostgresDriver , ZookeePerDriver
- iaas 是iaas提供程序的粘合剂(api包装器), openstackdriver 是第一个实现的。
- healthcheck 允许检查服务的状态,而不仅仅是虚拟机的存在。 httphealthcheckdriver 是内置的。
有关更多信息,请查看 文档
安装
应用程序需要Python3.6或更高版本。最新的稳定版本在pypi上可用。
pip install vmshepherd
vmshepherd的另一种安装方式是docker。 您可以从Docker上轻松下载我们应用程序的最新版本
docker pull dreamlabcloud/vmshepherd
在运行应用程序之前,需要根据 这是 规则
创建配置文件时,可以这样部署vmshepherd:
docker run -v $PATH_TO_CONFIG_DIRECTORY/:/home/shepherd -p 8888:8888 -it vmshepherd -c config/settings.example.yaml
- 其中path_to_config_目录是主机上配置文件的本地化
- -c config/settings.example.yaml是在容器中传递给vmshepherd的参数列表
示例:
➜ VmShepherd/docker ✗ sudo docker run -v $(realpath ../)/:/home/shepherd -p 8888:8888 -it vmshepherd -c config/settings.example.yaml INFO:root:Starting server, listening on 8888. INFO:root:VmShepherd start cycle... INFO:root:VMs Status: 1 expected, 0 in iaas, 0 running, 0 nearby shutdown, 0 pending, 0 after time shutdown, 0 terminated, 0 error, 0 unknown, 1 missing INFO:root:VMs Status update: 0 terminated, 0 terminated by healthcheck, 1 created, 0 failed healthcheck
我们还提供了一个 dockerfile 文件,可以在开发过程中使用:
docker build -t vmshepherd . docker run -it -p 8888:8888 -p 8000:8000 vmshepherd run
用法
安装后,您需要创建一个主配置文件(请检查此repo中 config/ 目录中的示例)。
<>运行:vmshepherd -c CONFIGFILE
对vmshepherd的贡献
感谢您对vmshepherd的贡献感兴趣。像往常一样,有很多方法可以贡献,我们非常感谢。
拉取请求和问题是我们用来更改vmshepherd的主要机制。github本身有一个很好的文档 阿布t使用拉取请求。我们使用 "分叉拉式" 模型, 贡献者将更改推送到他们的个人fork,并创建pull请求以将这些更改带入源存储库。
如果您想找到解决问题的方法,请查看我们的"路线图"中的问题
查看文档 http://doc.dreamlab.pl/vmshepherd/development/index.html
tl;dr
请求请求将需要:
- 测试
- 文档
- 一系列逻辑上写得好的提交