問題タブ [coreos]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
28510 参照

docker - CoreOS での再起動後に Docker コンテナを自動再起動する方法は?

OS の再起動時に init.d または systemd のようなプロセスによって Docker デーモンが自動的に再起動されると仮定すると、1 つまたは複数の Docker コンテナーを再起動するための推奨される方法は何ですか? たとえば、リバース プロキシまたはデータベース サーバーの背後に多数の Web サーバーがあるとします。

0 投票する
1 に答える
1270 参照

docker - Dockerコンテナはホストとは異なるフレーバーをどのように持つことができますか

Linux コンテナーに関する私の理解では、各コンテナーは同じホスト カーネルを使用し、コンテナーへのインストールはホスト上の分離されたファイル システム レイヤーにすぎません。

私はcoreosの入門ガイドを読んでいました。Coreos を含むホストで ubuntu コンテナを起動する方法を示しています。

これはどのように可能ですか?ホストとコンテナーで異なるフレーバーを使用するにはどうすればよいですか?

ありがとう、ムルタザ

0 投票する
1 に答える
1637 参照

cluster-computing - CoreOS で etcd を使用してサービス検出を行うときに古いデータを処理する方法は?

私は現在 CoreOS をいじくり回しており、それに基づいてクラスターを作成しています。これまでのところ、単一ホストでの CoreOS のエクスペリエンスは非常にスムーズです。しかし、サービス ディスカバリに関しては、少し曖昧になります。どういうわけか全体的なアイデアが得られないため、ここで助けを求めています。

私がやりたいことは、最初のコンテナーが 2 番目のコンテナーに依存する 2 つの Docker コンテナーを実行することです。純粋な Docker について話している場合は、リンクされたコンテナーを使用してこれを解決できます。ここまでは順調ですね。

ただし、Docker は複数のホスト間でコンテナーをリンクできないため、このアプローチはマシンの境界を越えては機能しません。だから私はこれを行う方法を考えています。

私がこれまでに理解したのは、これに対処する方法に関するCoreOSのアイデアは、etcd基本的にポートを介して各ホストでローカルにアクセスできる分散キー値ストアであるサービスを使用することであるという4001ことです。したがって、対処する必要はありません( の消費者としてetcd) ネットワークの詳細: アクセスするだけlocalhost:4001で問題ありません。

したがって、私の頭の中では、サービスを提供する Docker がスピンアップすると、自分自身 (つまり、その IP アドレスとそのポート) を local に登録し、Dockeretcd全体etcdに情報を配布することを意味するという考えが浮かびました。通信網。このようにして、たとえば次のようなキーと値のペアを取得します。

現在、別の Docker コンテナが にアクセスする必要がある場合、少なくともネットワーク全体に情報が配布された後は、RedisService独自のローカル から IP アドレスとポートを取得します。etcdここまでは順調ですね。

しかし今、私には答えられない質問があり、それはすでに数日間私を困惑させています: サービスがダウンするとどうなりますか? 内のデータをクリーンアップするのは誰etcdですか? クリーンアップされていない場合、すべてのクライアントが存在しないサービスにアクセスしようとします。

現時点で私が考えることができる唯一の (信頼できる) 解決策はetcd、データに の TTL 機能を利用することですが、これにはトレードオフがあります: 数秒ごとにハートビートを送信する必要があるため、ネットワーク トラフィックが非常に多い、または古いデータと一緒に暮らす必要があります。どちらもいいじゃない。

私が考えることができるもう 1 つの「解決策」は、サービスがダウンしたときにサービス自体を登録解除することですが、これは計画的なシャットダウンに対してのみ機能し、クラッシュや停電などに対しては機能しません …</p>

それで、あなたはこれをどのように解決しますか?

0 投票する
0 に答える
577 参照

linux - Vagrantfileで接続されたVirtualBoxストレージデバイスへのパスを確実に取得するには?

私の Vagrantfile では、VirtualBox を使用して、同じストレージ コントローラー上に任意のストレージ デバイスを動的に作成/マウントしようとしています (たとえば、読み取り専用ファイル システムでの永続化のため)、VM 上の特定のパス (Guest Additions、nfs などを使用しない)。現在、これを達成しようとして多くのフープ (以下の要点を参照) を飛び越えています。たとえば、私が試みているワークフローは次のとおりです。

  1. 指定されたイメージ パス (ホスト ファイル システム上の VDI、VMDK など) を使用して、VBoxManage createhd存在しない場合 (動作中)
  2. #1 のストレージ デバイスをVBoxManage storageattach(working)経由でストレージ コントローラに接続します。
  3. 接続されたストレージ デバイスのプライマリ パーティションを指定されたマウントポイントにマウントします (機能しません)。

したがって、各デバイスのこれまでのステップバイステップは次のとおりです(この要点、部分的に擬似コードを参照):

  1. デバイスの UUID を取得します (VBox に従って)
  2. ゲスト上のデバイスへの実際のパスを取得します (経由/dev/disk/by-uuid/<uuid>)
  3. デバイスが作成されたばかりの場合は、プライマリ パーティションを作成します
  4. デバイスをマウントします (オプションで、/etc/fstab永続化のために追加します)

問題は、特定のデバイスが で利用可能になると仮定/予測したくない/dev/sdXため、マウントされていないデバイスへの参照を (マウントするために) に取得する信頼できる方法を思いつかないことです。 VBox UUID とゲスト OS デバイスの UUID が一致していないように見えるため、これが重要です。それらは同じであるはずですか?そうでない場合、VBox 情報のみを使用して、ゲストのデバイス パスを確実に取得するにはどうすればよいですか? これを達成するためのより良い方法はありますか?

余談ですが、私は CoreOS (読み取り専用のルート マウントを持つ) でテストしており、この特定の目的のためにホストからゲスト追加機能や NFS を使用したくありません。意図的にストレージ デバイスを使用しようとしています。

0 投票する
2 に答える
1459 参照

macos - vagrant-coreos イメージは、再起動時に OS X の virtualbox 4.3.2 の共有フォルダーを削除します

VirtualBox のバージョン 4.3.2 を利用して、Mac OS X の Vagrant 内でこのCoreOS イメージを実行します。

イメージを起動すると、次のエラーが表示されます。

これは、ゲストの追加をサポートしていないように見えるOS X で VirtualBox を実行しているにもかかわらずです。

それにもかかわらず、共有フォルダーを手動で追加することはできますが、Settings -> Shared Foldersこれらはイメージの再起動時に保持されません。Auto-mountMake permanent

この CoreOS イメージには、セキュリティ ポリシーの一部としてランダムな再起動が含まれているため、再起動後に共有フォルダーが失われ、イメージを完全に削除して再作成しない限り共有フォルダーを取り戻すことができません。

なぜこうなった?

0 投票する
1 に答える
1297 参照

docker - CoreOS の同じ Docker コンテナーで 2 つのサービスを実行しますか?

私はDockerとCoreOSが初めてです。コンテナの概念と、それらが互いにどのように関係しているかについて、私は少し不明確だと思います。

カスタム サーバー (myserver と呼びます) と memcached サーバー (myserver のみがアクセスします) の 2 つのサービスを実行する CoreOS ベースのサーバーをセットアップしようとしています。

したがって、CoreOSマシンにmyserver.serviceファイルをインストールするところまで到達したと思います。これにより、次のような行を使用してupi myserverを正常に起動できます。

私の質問は、memcached サーバーを起動するために、CoreOS で新しい memcached.service ファイルを作成する必要があるかということです。その場合、カスタム サーバーと同じコンテナー "my_container" を使用する必要がありますか? 同じコンテナーを使用しない場合、myserver は memcached サーバーにアクセスできますか?