我应该在哪里保存 CoreOS 集群的服务文件,我应该如何加载它们?
Where should I keep service files for a CoreOS cluster, and how should I load them?
我想在负载均衡器后面部署一个 CouchDB 服务器集群,并让这些服务执行神奇的 etcd 发现。完成 CoreOS quickstart 后,我对如何在自己的项目中实际使用刚刚学到的知识感到茫然,也不知道哪个更深入的教程能让我继续下去。
在演示中,我在运行 实例中编写了一个服务文件,然后使用fleetctl 启动它。我想做的是在我的项目中将该服务文件置于版本控制之下,例如 Dockerfile。如何使用外部服务文件让 CoreOS 集群初始化?
我正在使用 Vagrant 在本地进行开发,但我会尽快部署到 AWS。
我在 aws 上快速搜索了 coreos,第一个 link 是亚马逊产品。他们有关于如何做到这一点的很好的文档。从高层次上讲,您需要使用云配置文件。当您启动 coreos(即实例化 ec2 映像)时,您可以在 user_data 中传递一个文本文件。该文本文件可以让你做几件事,主要是写文件然后定义单位。单位是您的服务。当您 'boot' 您的 ec2 实例时,cloud-config 文件中的任何内容都会自动启动。
或者,您可以使用 cloud_config 中的 'write_files' 指令来创建每个单独的服务。例如,我的云配置有:
write_files:
- path: /etc/systemd/system/skydns.service
permissions: 0644
owner: core:core
content: |
[Unit]
Description=SkyDNS service discovery
After=flanneld.service docker.service etcd.service
Requires=flanneld.service docker.service etcd.service
[Service]
Restart=always
ExecStartPre=-/usr/bin/env docker kill skydns
ExecStartPre=-/usr/bin/env docker rm skydns
ExecStartPre=/usr/bin/env docker pull tacodata/skydns-coreos
ExecStart=/usr/bin/env bash -c '/usr/bin/docker run --name skydns -p 53:53/udp test/skydns-nameservers 8.8.8.8:53 -domain local
ExecStop=-/usr/bin/docker stop skydns
[Install]
WantedBy = multi-user.target
systemd init 的东西有一点学习曲线。我也不知道 cloud-config 文件如何与 vagrant 环境一起使用。许多平台都使用云配置,因此,这是一个很好的想法。
-g
我想在负载均衡器后面部署一个 CouchDB 服务器集群,并让这些服务执行神奇的 etcd 发现。完成 CoreOS quickstart 后,我对如何在自己的项目中实际使用刚刚学到的知识感到茫然,也不知道哪个更深入的教程能让我继续下去。
在演示中,我在运行 实例中编写了一个服务文件,然后使用fleetctl 启动它。我想做的是在我的项目中将该服务文件置于版本控制之下,例如 Dockerfile。如何使用外部服务文件让 CoreOS 集群初始化?
我正在使用 Vagrant 在本地进行开发,但我会尽快部署到 AWS。
我在 aws 上快速搜索了 coreos,第一个 link 是亚马逊产品。他们有关于如何做到这一点的很好的文档。从高层次上讲,您需要使用云配置文件。当您启动 coreos(即实例化 ec2 映像)时,您可以在 user_data 中传递一个文本文件。该文本文件可以让你做几件事,主要是写文件然后定义单位。单位是您的服务。当您 'boot' 您的 ec2 实例时,cloud-config 文件中的任何内容都会自动启动。
或者,您可以使用 cloud_config 中的 'write_files' 指令来创建每个单独的服务。例如,我的云配置有:
write_files:
- path: /etc/systemd/system/skydns.service
permissions: 0644
owner: core:core
content: |
[Unit]
Description=SkyDNS service discovery
After=flanneld.service docker.service etcd.service
Requires=flanneld.service docker.service etcd.service
[Service]
Restart=always
ExecStartPre=-/usr/bin/env docker kill skydns
ExecStartPre=-/usr/bin/env docker rm skydns
ExecStartPre=/usr/bin/env docker pull tacodata/skydns-coreos
ExecStart=/usr/bin/env bash -c '/usr/bin/docker run --name skydns -p 53:53/udp test/skydns-nameservers 8.8.8.8:53 -domain local
ExecStop=-/usr/bin/docker stop skydns
[Install]
WantedBy = multi-user.target
systemd init 的东西有一点学习曲线。我也不知道 cloud-config 文件如何与 vagrant 环境一起使用。许多平台都使用云配置,因此,这是一个很好的想法。
-g