1

ロード バランサーの背後に CouchDB サーバーのクラスターを展開し、サービスに魔法のような etcd 検出を実行させたいと考えています。CoreOS クイックスタートを終えた後、学んだことを自分のプロジェクトで実際に使用する方法に途方に暮れています。より詳細なチュートリアルのどれを使用すればよいかわかりません。

デモでは、実行中のインスタンス内にサービス ファイルを記述し、その後、fleectl を使用してそれを開始しました。私がやりたいことは、Dockerfile のように、私のプロジェクトでそのサービス ファイルをバージョン管理下に置くことです。外部サービス ファイルを使用して CoreOS クラスターを初期化するにはどうすればよいですか?

Vagrant を使用してローカルで開発していますが、AWS にすぐにデプロイします。

4

1 に答える 1

1

AWS で coreos を簡単に検索したところ、最初のリンクは amazon 製品でした。彼らはそれを行う方法についてのかなり良いドキュメントを持っています。大まかに言うと、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 については、少し学習曲線があります。cloud-config ファイルが vagrant 環境でどのように機能するかもわかりません。多くのプラットフォームでは cloud-config を使用しているため、最初はこれを使用することをお勧めします。

-g

于 2015-06-23T19:04:20.133 に答える