問題タブ [etcd]
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.
bash - redis-cli subscribe の stdout を読み取り、メッセージに対して bash コマンドを実行します
redis-cli
サブスクライブの stdout を読み取り、メッセージが受信されたときにメッセージ値とともに何かを実行する bash スクリプトが必要です。
redis-cli
サブスクライブは、好きなように引数として渡すことができます
しかし、メッセージを解析できるように、その stdout を何かにパイプする必要があります。ループを使おうと思っwhile read line; do
たのですが、1 つの redis メッセージで 3 行かかります。
アップデート
私の最終的な目標は、etcd にキーを設定して新しい redis マスターを発表することです。switch-master
これは、redis センチネルでチャネルにサブスクライブすることで達成できるはずです。[1] そのメッセージの値は次のようなものである必要があり、それを etcd の値として<master name> <oldip> <oldport> <newip> <newport>
設定したいと思います。newip
そのメッセージが受信されたときに実行したいコマンドはetcdctl set /redis/master $NEWIP
coreos - cloud-config の ETCD_PEER_KEY_FILE のセマンティクスは何ですか?
etcd
インスタンスは複数のピアを持つことができます。CoreOS docによると、パラメーターを構成できますETCD_PEER_KEY_FILE=/path/to/peers.key
。このパラメーターをその名前に従って解釈すると、ピア (またはさらに peer_s_) の秘密鍵をそのファイルに入れることができます。この背後にある合理的な理由は何ですか?このパラメーターが実際に何を意味するのか、誰かが説明できますか(ドキュメントは見つかりませんでした)。
docker - CoreOS 上の etcd api - IP アドレス構成をリモートで設定する
etcd のリモート API を使用して、IP アドレス、DNS 解決アドレス、ゲートウェイなどの静的な値を使用して、coreOS ボックスをリモートで構成しようとしています。
私は、次のようなファイルを作成できるはずだと考えています。
curl -X PUT " http://xxx.xxx.xxx.xxx:4001/v2/keys/ etcd/registry/ ???_/_state?prevExist=false " -d 値=10.10.10.1
しかし、使用する正確な構文への参照が見つかりません。
race-condition - etcdリーダー選挙で競合状態を解決するには?
3 つのノードで Core Os クラスターをテストしているときに、いくつかの追加ノードを正常に追加および削除した後、etcd の選択プロセス中の競合状態が原因であると思われる次の問題に遭遇しました。
新しいリーダーをチェックすると、次のようになります。
クラスター内の各マシンの Journalctl は次のようになります。
フリートを含むマシンの一覧表示は失敗します。
クラスター内のマシンを一覧表示すると、次のようになります。
しかし、現在稼働しているマシンは 3 台だけです。クォーラムに到達するためにマシンを追加しようとしましたが、無駄でした。次のバージョンを実行しています。
ここhttps://coreos.com/docs/distributed-configuration/etcd-api/#cluster-configで説明されているように、リーダーを強制するリーダー モジュールが削除されました。醜い部分は、クォーラムがないため、現在実行されていないマシンをマシンのリストから削除できないことです。たとえば、次のようにします。
これは効果がありません。クラスターを保存する方法はありますか?
coreos - クラスターで etcd を使用できない
クラスター アーキテクチャに関するこのガイドを読み、次の構成で開発クラスターを構築しました。
すべてのマシンが同じサブネット上にあります。
1 台のマシンがマスターのように機能し、etcdのみを実行します (IP アドレスは 192.168.0.95)。
次に、この構成でフリートを実行する 3 つのワーカーがあります。
マシンとユニットをfrotctl経由で制御できますが、 etcdctlを適切に使用できていません。
各ワーカーは、キーを操作するときにローカルのetcdを使用するため、キーは作成されたワーカーにのみ存在します!
上記の構成を考えると、これは起こるはずではありませんか?
ありがとう
vmware - config-drive を介して VMware ESXi でコアオスの静的 IP アドレスを定義する方法
VMware ESXi に複数の Coreos インスタンスをデプロイしています。etcd は、特に IP アドレスが変更された場合に、非常に気難しいようです。
etcd クラスターを混乱させない方法で、cloud-config を介して静的 IP アドレスを定義できるようにしたいと考えています。coreos の起動中に必要なことは、etcd を開始する前に、最初に静的 IP アドレスを使用してインターフェイスを起動する必要があるようです。user_data ファイルのこのセクションでこれを実行しようとしました:
何が起こるかというと、coreos-cloudinit プロセスは起動時にこのファイルをファイルシステムに書き込みますが、それは最初に DHCP を使用してネットワーク インターフェイスを立ち上げた後でのみです。etcd は起動しますが、user_data addr と peer-addr の設定が DHCP と一致しないため、混乱します。最初の起動後にシステムを手動で再起動すると、以前に static.network ファイルに記録された静的 IP アドレスの使用が開始されます。この 2 回目の再起動を回避する方法、つまり static.network を定義した後にネットワークを開始する方法はありますか?
根本的な問題は、vmware プロバイダーが、vagrant などの他のプロバイダーで使用される $public_ip4 構造を理解していないことにあるようです。
私が知る限り、vagrant/virtualbox を使用する場合、この問題は存在しません。