gpt4 book ai didi

deployment - 我应该在哪里保存CoreOS集群的服务文件,以及如何加载它们?

转载 作者:行者123 更新时间:2023-12-02 19:42:49 26 4
gpt4 key购买 nike

我想在负载平衡器后面部署CouchDB服务器集群,并让服务进行神奇的etcd发现。在完成CoreOS quickstart之后,我对如何真正使用自己在自己的项目中学到的东西一无所知,而且我无法说出哪个更深入的教程可以使我前进。

在演示中,我在正在运行的实例中编写了一个服务文件,然后使用Flectcl启动了该文件。我想做的是在我的项目中将服务文件置于版本控制下,例如Dockerfile。如何使CoreOS集群使用外部服务文件进行初始化?

我正在使用Vagrant在本地进行开发,但是我将尽快部署到AWS。

最佳答案

我在aws上快速搜索了coreos,第一个链接是亚马逊产品。他们有很好的有关如何执行此操作的文档。从高层次上讲,您需要使用cloud-config文件。引导coreos时(即实例化ec2镜像),可以在user_data中传递文本文件。该文本文件使您可以做几件事,主要是写文件,然后定义单位。单位就是您的服务。当您“启动” 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东西有一些学习曲线。我也不知道云配置文件将如何在无所事事的环境中播放。许多平台都使用云配置,因此,一开始就是一个好主意。

-G

关于deployment - 我应该在哪里保存CoreOS集群的服务文件,以及如何加载它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30961156/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com