2017-09-12 4 views
1

私は、アプリケーションが障害状態でどのように動作するかを確認するために、ドッカーで部分的/全体的なネットワーク/コンテナの障害をシミュレートしようとしています。私はpumbaを使って始めましたが、正しく動作していません。次の出力でDockerでネットワーク障害をシミュレートする

tc qdisc add dev eth0 root netem delay 2000ms 10ms 20.00 

:両方プンバとするときドッキングウィンドウ幹部とのコンテナ上で直接実行を経て、実行したときより具体的には、このコマンドは失敗し、それは見知らぬ人を取得する場所今ここ

RTNETLINK answers: Operation not permitted 

です。 これは私のサービスコンテナの中で動作するときに動作します 実際には、iproute2パッケージをインストールした後、pumba経由で実行されたときにのみ動作します(rabbitmq:3.6.10、redis:4.0.1、mongo:3.5.11)。アプリケーションコンテナの内部では動作しません。これらのアプリケーションコンテナはすべて、すでにiproute2がインストールされているベースイメージとしてノード8.2.1を使用します。どのコンテナにもadd_capsが適用されていません。アプリケーションコンテナの1にip addr

出力:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 
    inet 127.0.0.1/8 scope host lo 
     valid_lft forever preferred_lft forever 
2: [email protected]: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1 
    link/ipip 0.0.0.0 brd 0.0.0.0 
3: [email protected]: <NOARP> mtu 1476 qdisc noop state DOWN group default qlen 1 
    link/gre 0.0.0.0 brd 0.0.0.0 
4: [email protected]: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN group default qlen 1000 
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff 
5: [email protected]: <NOARP> mtu 1332 qdisc noop state DOWN group default qlen 1 
    link/ipip 0.0.0.0 brd 0.0.0.0 
6: [email protected]: <NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1 
    link/tunnel6 :: brd :: 
7: [email protected]: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1 
    link/sit 0.0.0.0 brd 0.0.0.0 
8: [email protected]: <NOARP> mtu 1452 qdisc noop state DOWN group default qlen 1 
    link/tunnel6 :: brd :: 
9: [email protected]: <NOARP> mtu 1448 qdisc noop state DOWN group default qlen 1 
    link/gre6 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 brd 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 
113: [email protected]: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:12:00:06 brd ff:ff:ff:ff:ff:ff 
    inet 172.18.0.6/16 scope global eth0 
     valid_lft forever preferred_lft forever 
+1

イメージの作成方法( 'Dockerfile')に関する情報を追加して実行できますか?権限のないユーザー(https://github.com/nodejs/docker-node/blob/dbab8eb1810567084f4600f711b9f87fd11b3216/docs/BestPractices.md#non-root-user)で実行している可能性がありますか? –

+0

すべての画像で同じエラーが発生する –

答えて

0

[OK]を、私は答えの一部を発見しました。 tcコマンドは、サービスコンテナで直接実行されても機能していないことが分かりました。元の質問の間違った情報を少し残念に思っています。 Pumbaはアプリケーションコンテナではなくサービスコンテナで動作します。 tcコマンドはいずれのコンテナでも機能しません。

特権を持たないユーザーとして実行すると問題であることが判明しました。問題に対処するためにpumbaに問題をオープンしました。

rootとして実行してもtc comandはまだ動作していませんが、なぜか分かりません。しかし、私はデバッグのためにそのコマンドを使用していただけなので、なぜうまくいかないのか不思議ですが、私の主な問題は解決されました。

関連する問題