ラベル docker の投稿を表示しています。 すべての投稿を表示
ラベル docker の投稿を表示しています。 すべての投稿を表示

2015年8月9日日曜日

Trema Day #7 Presented by APC に参加してきた

開催概要

他のかたのまとめ

感想

トレンドなのか、たまたまなのか、今回は無線関係のOpenFlowの話が多かった。 TremaがPure Rubyになったということで、いい加減、Trema入門します。 エーピーコミュニケーションズさんのすばらしい会場で、 懇親会まで準備いただいてありがとうございました!

OpenFlowで覚えるネットワーク

まとめると

ネットワークをあまり理解していない人に向けて、どのようにしたら 理解してもらえるか。どうやったらネットワークを理解している人を増やせるか という課題に対して、 Yellowケーブルなどのころからのネットワークの変化を OpenFlowを使って追体験することで、理解を深められるのではないか という 試み。

メモ

  • テクニカルな話ではない
− ネットワーク = コミュニケーションをする道具
  • 複数の人 で達成する
    • 情報のやりとりをやる
  • 必ず2点の「端点」がある
  • ゴール: 自分の頭の中にあるものが相手の頭の中になっている
    • 音声、紙
      • 日本語 とかいうルールがある
        • プロトコル
  • ネットワークのかたち
    • どんな情報を伝えるか
    • どこのだれに情報を伝えるか
    • 何を使って情報を伝えるか
    • メディア
  • mininet使うと簡単に試せる
  • 糸電話からLearning Switchへ
  • 同時に話すとCollisionが発生する
    • 共有メディアは人が増えるとしゃべれなくなる
  • 近代ネットワークの道
    • ブリッジ → スイッチ
    • スイッチになるとコリジョンが発生しなくなる
− スイッチにするには
  • KnownなARPテーブル
  • UnknownなARPテーブル → Learning Switch
  • よその部屋の人との会話
    • IPの話→Simple Router
  • L1とはL2というのを下から上に理解するといいのではと思っている
  • コリジョンドメイン、全二重と半二重、物理メディアの話は端よっている
  • OpenFlowを使おうとおもうと、面倒見る人がいない
    • ソフト屋

ニューTrema5つのポイント

まとめる

新しいTremaになった。 見た目は変わっていないが、中身はだいぶかわった。 OpenFlow1.3.4に対応し、Pure Rubyにして、 コントローラ連携がしやすくなって、テストフレームワークと ドキュメントが充実した。

メモ

  • OpenFlow1.3.4に対応
    • –openflow13 と足すとしゃべれるようになった
    • pioで対応
    • trema/pio を見るとわかる
  • Pure Ruby化
    • インストールが簡単
    • openvswitchを入れて、bundle install でできる
    • デバッグしやすい
    • pryとかでパケットインのところでそのときのスコープの変数とかが見える
    • pryだとmethodの補完もできる
    • show-sourceとかでmethodなので。
  • コントローラ連携
    • 既存のコントローラを組み合わせて高機能なコントローラを作ることができる
    • delegatorというのを使う
    • クラスの継承を使って機能を拡張するのも簡単
  • テストフレームワーク
    • テスト
      • INPUT とOUTPUTを定義するとできる
    • Cucumberでできる
    • Given When Thenでかける
  • ドキュメント
    • Cucumberの記述からドキュメントを生成するようにした
    ー その結果充実した
  • 協力のお願い
    1. バグ報告
    2. パッチのPR
    3. 新しいアプリ
    4. Trema本レビュー

OVS拡張の話(とPioの話)

まとめると

TremaのPacketParserであるPioに OVSで使われている Nicira拡張をいれたいという話。 Nicira拡張はOVSに限定されているが、 いろいろと使いやすいものがある。

メモ

  • PioはRubyのパケットパーサ実装
    • パケットのパースをするツール
    • パケットを作れるツール
    • PioがだんだんCoreの部分に近づいている
    • Pioの性能がTremaの性能に影響を与える
  • OVSのNicira拡張にいろいろと使えるものがある
  • OpenFlowのきついところ
    • 「Controllerに転送を書くんでしょ?」
    • 「そうだよ?」
    • 辛そう
  • 宣言的にやりたい
  • OpenFlow的にはpacket_inさせるな!というのが一般的だが。。
  • 簡単にかけます

QA

  • Q: Pioにいれるきがあるか?
  • A: 熟読してから決める(by @yasuhito さん)
  • Q: 使える実装はどれくらい?
  • A: OVSなら使える
  • C: 他のハードのスイッチはけっこうはまりそう?。
  • C: Nicira拡張なのでOVSなら使える

いろいろなデバイスでOpenVNetを動かしてみようとした

まとめると

OpenVNet(OVS, Trema, MySQL など)を 次世代携帯型データセンター(Android 2.x)で 動かそうと頑張ったが、そこまでいかなかった。。 という 死闘の記録。

メモ

  • Edge Overlayのおさらい
    • Hostに仮想Switchがのるタイプのネットワーク
    • OpenStack Newtronとの親和性
  • 次世代携帯型データセンター
    • rbenvでrubyのコンパイルが1日で終わる。
    • Tremaのコンパイルも1時間
    • rootをとる必要がある
    • けっこう辛い
  • デモ
    • OVS, Tremaはなんとか動いたが。。
    • 無理矢理アラインメント変更したから。。

Dive into wireless openflow!

まとめると

無線LANとOpenFlowについての考えは珍しくはないが、 無線LANベンダによって、ロックインがあるため、いろいろ難しい面もある。 Raspberry Piを使った実装のデモを使って、効果の説明があった。

メモ

  • 無線とOpenFlowの組み合わせは珍しくはない
  • 無線はいろいろわからない(見えない)
  • 今回作ったやつはラズベリーパイで動いている
  • 効果
    • 状態を監視できる
    • APの電波でどちらを優先するか などの制御ができる
    • デバイスごとの癖がわかる
  • 実装
    • Linux netdev = openflow portとした

QA

  • Q: 無線LANの標準はあるのか?
  • A: 標準にしてもいいがONFとしてどうなっているかはわからない
  • C: 個人的には標準化したほうがよいかという気持ちはある

「Lagopusで遊ぶ(仮)」 あらため「Lagopusで試すFirewall」

  • @hibitomo さん
  • スライドはNot Yet

まとめると

FirewallのACLをLagopusで実装してみる試み。 ポートのRangeを実装するところはLagopusなら力業で実現できる(はず)。 ちょうどLagopusが新しくなって動いていないが、すぐに直るはず。

メモ

  • ACLのポートレンジのところは、最大26万ルールにおさまる!!
  • Lagopus →100万ルール いける(はず)
  • priorityを気をつける必要がある

QA

  • Q: テストツールは?
  • A: RyuのテストツールでJSONをいれればできるので、これでいける?

(仮題)Dockerコンテナのネットワーク周りについて

まとめると

DockerではネットワークまわりがいまHot。 docker 1.8 experimentalではいろいろ遊べる。 RunCを使えば、dockerが入らないようなシステムでも コンテナを簡単に作れる。

メモ

  • Trema関係ない
  • いまDocker Networkに力入れている
  • コンテナの周りのツール いろいろある
  • きょうの話
    • libnetwork
      • コンテナのネットワーク
    • RunC
  • libnetworkの話
    • 言葉の定義
      • SandBox → コンテナのこと
      • Endpoint → vethとかのこと
    • libnetwork driverがdocker0作成したりする
    • libnetwork driver
      • bridge デフォルト
      • overlay VXLANでトンネルをはる
    • overlay driver
      • docker 1.8-experimentalから利用可能
    • swarmはいまはネットワーク周りまだ管理していない
    • consulでやっている
    • docker create network overlay のようにやる
    • docker service publish h1.test ってやる
    • service とIPアドレスが対応している
    • /etc/hostsに書かれている
    • network driver だとarpがこない
      • broadcastとかはdocker側で管理している
    • 今後はlibnetworkを中心に発展していきそう
  • RunCの話
    • ホワイトボックススイッチ
    • Cumulus Linuxなど
      • Debian 7ベース
    • dockerを入れるにはいろいろ問題があって。。
    • そこでRunC
    • Open Container Projectに準拠させた
    • dockerのような常駐デーモンがいない
    • docker export でtarにして、それをrootfsにして、そこでruncを走らせるとコンテナが動く

QA

  • Q: vxlanはdocker間だけ?
  • A: 現状はdocker間だけでしかvxlanは通信できない
  • Q: どうしてスイッチ上でコンテナを動かしたい?
  • A: スイッチ上でアプリが動けばいろいろやりたい。アプリの配置を簡単にしたい
  • Q: dockerのネットワーク切り替えはできる?
  • A: 一応できるけど、ホスト名では解決できない

LT

ぜんぜんかけていないので、あとで追記します。きっと。。

LT SDNに夢見た無線AP~

LT 無線LANコントローラーからSDNへの移行可能性と拡張性の模索

  • @SRCHACK さん

LT Lagopus 0.2

2014年9月29日月曜日

vagrant-proxyconf(1.4.0) supports docker (en)

Hello, proxy fans in the world,

Finally,vagrant-proxyconfdocker has been released!(version 1.4.0).So, you can run docker easily behind a corporate proxy.

docker

You can use vagrant-proxy docker support for docker hosts on ubuntu, RHEL(6,7), CoreOS, boot2docker and so on.

It is easy to use. Install vagrant-proxyconf, then add your proxy configuration to Vagrantfile. If you already use vagrant-proxyconf, you don't need extra configuration for vagrant-proxy docker support.

vagrant-proxyconf installation

Install vagrant-proxyconf

$ vagrant plugin install vagrant-proxyconf
Installing the 'vagrant-proxyconf' plugin. This can take a few minutes...
Installed the plugin 'vagrant-proxyconf (1.4.0)'!
$ 

If you can't install vagrant plugin because of proxy server. Try the followings.

$ http_proxy=http://myproxy:3128/ vagrant plugin install vagrant-proxyconf
Installing the 'vagrant-proxyconf' plugin. This can take a few minutes...
Installed the plugin 'vagrant-proxyconf (1.4.0)'!
$ 

Vagrantfile

Add configuration.

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  if Vagrant.has_plugin?("vagrant-proxyconf")
    config.proxy.http     = "http://myproxy:3128/"
    config.proxy.no_proxy = "localhost,127.0.0.1,.example.com"
  end
  # ... other stuff
end

Running docker

After vagrant up, try to run docker.

vagrant@vagrant-ubuntu-trusty-64:~$ sudo docker.io pull -t 14.04 ubuntu 
Pulling repository ubuntu
ad892dd21d60: Download complete 
vagrant@vagrant-ubuntu-trusty-64:~$ 

If you set http_proxy, it will affect for https communication for docker. You can use private repositories in your intranet, because you can set no_proxy.
docker/registry/registry.go
docker/registry/auth.go
The Go Programming Language Source file src/pkg/net/http/transport.go

Happy proxy life!!

Docker logo and marks usage

vagrant-proxyconf(1.4.0) supports docker

全国のproxy愛好家みなさん、こんにちは。

ついに、vagrantを使う上で欠かすことのできないvagrant-proxyconfdockerサポートが加わりました(version 1.4.0)。これでproxyの内側でも気軽にvagrant上でdockerが使えるようになりました。

docker

対応している主なゲスト(dockerのホスト)としては、ubuntu, RHEL(6,7), CoreOS, boot2dockerなどです。

使い方は簡単です。vagrant-proxyconfをインストールし、Vagrantfileに以下のようにproxyの設定をして起動するだけです。(いまvagrant-proxyconfを利用しているひとはpluginをupdateすればそのまま使えます。)

vagrant-proxyconf のinstall

vagrant-proxyconfをインストールします。

$ vagrant plugin install vagrant-proxyconf
Installing the 'vagrant-proxyconf' plugin. This can take a few minutes...
Installed the plugin 'vagrant-proxyconf (1.4.0)'!
$ 

ここでproxyが理由でインストールできない場合は。。こんな感じですね。

$ http_proxy=http://myproxy:3128/ vagrant plugin install vagrant-proxyconf
Installing the 'vagrant-proxyconf' plugin. This can take a few minutes...
Installed the plugin 'vagrant-proxyconf (1.4.0)'!
$ 

Vagrantfile

こんな感じでproxyの設定を書いてください。

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  if Vagrant.has_plugin?("vagrant-proxyconf")
    config.proxy.http     = "http://myproxy:3128/"
    config.proxy.no_proxy = "localhost,127.0.0.1,.example.com"
  end
  # ... other stuff
end

dockerを使う

vagrant upでVagrantを起動したら、dockerを使ってみてください。

vagrant@vagrant-ubuntu-trusty-64:~$ sudo docker.io pull -t 14.04 ubuntu 
Pulling repository ubuntu
ad892dd21d60: Download complete 
vagrant@vagrant-ubuntu-trusty-64:~$ 

http_proxyを設定すればhttpsの通信もそれを使うようです。また、no_proxyも使えると思いますので、プライベートのレポジトリがあっても大丈夫ですね。
docker/registry/registry.go
docker/registry/auth.go
The Go Programming Language Source file src/pkg/net/http/transport.go

Happy proxy life!!

Docker logo and marks usage

2014年6月29日日曜日

hbstudy #55 「Docker勉強会」リターンズ に参加してきた

概要

  • 日時: 2014/6/27(金) 19:00~21:30
  • 会場: ハロー会議室 新宿 C+D
  • スピーカー: 中井悦司さん @enakai00

他のかたのまとめなど

感想

最近は、Dockerについて、多く情報をInputして、自分の中でイメージを構築しようとしています。(英語とかの多聴に近いかも。) そのなかで、今回の勉強会での気づきは、DockerがLXCなどの他のシステムと違うのは さまざまな既存の技術を「一連の仕組み」としているところだな ということです。

これまでのLinux上の技術を組み合わせて、 CPU、メモリ、ネットワーク、ストレージなど一括して切り出せるようにしているので、 人によって、かゆいところが違ってくるのだと思います。

また、サーバの種類によって、Dockerを使ったほうがよいか、否かがかわってくると思います。 Dockerの技術はデバイスを隠蔽しているので、直接ハードを扱いたい場合などには利用できないのと、 DBもやり方によっては、実現できるのかもしれませんが、あまりメリットが多くないのかな と思います。 なので、実際にはアプリケーションサーバなどの状態を持たないサーバをDockerで 構築するのが最初になるのかな と思いました。

ただ、自分の興味のあるネットワーク周辺については、Dockerの思想からはずれるとことがあるかもしれませんが、 いろいろ小細工していきたいな と思いました。 (今回、@enakai00 さんがネットワーク周りの操作をデモでやっていただいて、なんとなくイメージが持てました。)

内容メモ

ちょこっとしたまとめです。スライド見るとだいたい書いてあるので。。

Docker入門(Docker クイックツアー)

  • コンテナの仕組み
    • Linux上でのコンテナは、昔(といっても、そんなに昔ではない)からある技術を組み合わせ
    • ホスト側から、ひとまとまりにして、切り離せる
  • Dockerの仕組み
    • これまで実現するためには、一生懸命組み合わせないといけなかったものを簡単にできるようにしたもの
    • インターネット上のレポジトリにコンテナをイメージを置き、利用できるようにしている
    • ホスト側の環境がある程度そろっていると、コンテナの動きもかわらないようにできる
  • Docekrを動かしてみる
    • デモでいろいろ見せていただきました
      • ちゃんとFedoraの上で、CentOSのtracerouteも動きました

Docker を支える技術

  • Linuxコンテナの実態
    • namespaceを使っていろいろなリソースを分離している
    • コンテナ内部からは見えないが、ホスト側からは見える(操作できる)
    • コンテナではpid 1のプロセスが落ちると、コンテナとして落ちる
    • ネットワークのnamespeceCentOS 6.4とかだと使えない-> 6.5では入っている)
    • これまでaufs依存だったが、Device Mapper Thin-Provisioningという仕組みが入って、aufs依存しなくなった
      • Red Hatさんが作り込んだようです
    • ホスト側からは、いろいろ設定が変更できる
      • Docekrでは固定でも、そとから変更すれば変更できる
        • ただし、Dockerの思想とは反するのと、ホストによって振る舞いが違ってくることもある

2014年6月23日月曜日

JTF2014に参加してきた

JTF2014に参加してきたので、メモを残します。 もうご飯作る時間になってしまったので、ここまでです。。

概要

感想

Serverspec のような「成功」を成し遂げるには他者を巻き込む

Serverspecのmizzyさんの話でしたが、とても楽しく、また、参考になりました。 (というか、参考にしてがんばります!!) 構成管理+仮想化+テスト+CIやGithubなどの環境の変化があったところに、 Serverspecがぴったりとはまったということでした。 (あと、@naoyaito さんに広めてもらうことが、日本での普及の鍵だったそうです。。) その土台には、プロダクトを「KISS」にする、他者を巻き込みやすいようにする というようなことを やり続ける ということがある。と。 たしかに、自分がコミットしたOSSは愛着がわきますね。

Serverspecrspec-dnsにインスパイアされてLbspecというものを作っているので、 今回の話を参考にして、がんばっていきたいと思います。

docker関連

  • dockerがいま暑い

    JTF2014の中心はdockerだったように思います。 docker関連のセッションの数も多く、また、セッションには立ち見がでるほど人がきていました。 ただ、会場では「本番運用」までを期待していたものの、docker入門の部分が大きく、 ちょっと物足りなかったかかな と思います。 入門も必要なところなので、セッションごとの役割分担ができていたらよかったですね。 そもそも、本番運用までやっているところもほとんどないと思うので、自分で開拓するしかないですね。きっと。

  • dockerは「秘伝のたれ」を取り除く銀の弾丸ではない
    これまでのサーバ構築が職人の「秘伝のたれ」で構成されていることに対するカウンターとして、 dockerでコンテナ作って、CI回して・・・というのをやっているのだと思うのですが、 dockerコンテナに「秘伝のたれ」が入り込む余地はあって、 結局、ある「ゴールデンコンテナ」からの子孫を大事に守り続けることになるかもしれない という風に思いました。 ただ、hyper visor上のVMに比べたら、生成、消滅を繰り返してやれる分、 CIを速く回していけるので、思いました。

DMM.comさんはお客様にコンテンツを速く提供するためには、「なんでもする」

DMM ツチノコブログで最近情報発信を活発にされているDMM.comさんのインフラ(ネットワーク周り)の 話をお聞きすることできました。(このようにDMM.comさんが話をするのは10年ぶりだそうです。) お客様にコンテンツを速く提供するためには、「なんでもする」という話がとても印象に残りました。 「稟議も即決」「自分たちの責任でそのときのベストと思うシステムで構成する」というところが とてもかっこよかったです。 これからの情報発信にも期待です。

フロントエンドでビルドツール特にgulpが活躍

自分とはあまり関係ないところも聴いてみようと思って、このセッションを聴いたのですが、 デザインのところでもだいぶ自動化で環境が変わってきているな と思いました。

デザイナーがやるべきところに注力できるようにする ツールが進化しているというのがとてもおもしろかったです。 あとでもう一度、調べてみようと思います。

主催者、スポンサーに感謝

とても濃いセッションが多くあり、とても楽しく1日すごせました。 懇親会はでられなかったのですが、事前に申し込むと1000円以下で、 おいしい昼食と飲み物とお菓子がいただけるという。。 それだけで1000円の価値があります。。 ありがとうございました。

2013年12月19日木曜日

Vagrant 1.4.1でCentOS上でdockerを走らせてみる

Vagrantが1.4.1になって、Redhat、CentOSでもdockerのproviderが動くようになったということで、試してみた。

結果

とりあえず動かしてみることは簡単にできた。

Vagrantfileを作る

実行

vagrant up

こんな感じでdockerのコンテナができていることを確認

[otahi@otahiair test-docker-vagrant]$ vagrant up       
Bringing machine 'default' up with 'virtualbox' provider...
[default] Box 'centos65' was not found. Fetching box from specified URL for
the provider 'virtualbox'. Note that if the URL does not have
a box for this provider, you should interrupt Vagrant now and add
the box yourself. Otherwise Vagrant will attempt to download the
full box prior to discovering this error.
Downloading box from URL: https://github.com/2creatives/vagrant-centos/releases/download/v6.5.1/centos65-x86_64-20131205.box
Extracting box...te: 660k/s, Estimated time remaining: --:--:--)
Successfully added box 'centos65' with provider 'virtualbox'!
[default] Importing base box 'centos65'...
[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Fixed port collision for 22 => 2222. Now on port 2200.
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2200 (adapter 1)
[default] Booting VM...
[default] Waiting for machine to boot. This may take a few minutes...
[default] Machine booted and ready!
[default] The guest additions on this VM do not match the installed version of
VirtualBox! In most cases this is fine, but in rare cases it can
cause things such as shared folders to not work properly. If you see
shared folder errors, please make sure the guest additions within the
virtual machine match the version of VirtualBox you have installed on
your host and reload your VM.

Guest Additions Version: 4.3.4
VirtualBox Version: 4.2
[default] Mounting shared folders...
[default] -- /vagrant
[default] Running provisioner: docker...
[default] Installing Docker (latest) onto machine...
[default] Pulling Docker images...
[default] -- Image: centos
[otahi@otahiair test-docker-vagrant]$ vagrant ssh
[vagrant@vagrant-centos65 ~]$ sudo docker images        
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              6.4                 539c0211cd76        8 months ago        300.6 MB (virtual 300.6 MB)
centos              latest              539c0211cd76        8 months ago        300.6 MB (virtual 300.6 MB)
[vagrant@vagrant-centos65 ~]$ sudo docker run centos echo hello
hello
[vagrant@vagrant-centos65 ~]$