Your SlideShare is downloading. ×
0
CoreOSってなんですか
CoreOSってなんですか
CoreOSってなんですか
CoreOSってなんですか
CoreOSってなんですか
CoreOSってなんですか
CoreOSってなんですか
CoreOSってなんですか
CoreOSってなんですか
CoreOSってなんですか
CoreOSってなんですか
CoreOSってなんですか
CoreOSってなんですか
CoreOSってなんですか
CoreOSってなんですか
CoreOSってなんですか
CoreOSってなんですか
CoreOSってなんですか
CoreOSってなんですか
CoreOSってなんですか
CoreOSってなんですか
CoreOSってなんですか
CoreOSってなんですか
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

CoreOSってなんですか

1,022

Published on

社内勉強会でLTした内容です。 …

社内勉強会でLTした内容です。
自分の勉強用に調べたCoreOSについて簡単に紹介しました。

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,022
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
7
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. CoreOSってなんですか 2014/06/17 Tech-Circle 泉谷圭祐
  • 2. 自己紹介 • 名前 泉谷圭祐 • 所属 • TIS株式会社 IT基盤サービス企画室 • eXcale(https://www.excale.net/)の中の人 • SNS等 • Twitter @syguer • Facebook https://www.facebook.com/keisuke.izumiya • ブログ http://syguer.hatenablog.com/
  • 3. http://blog.excale.net/
  • 4. CoreOSとは
  • 5. CoreOSとは ・Chrome OSベースの軽量なLinux Distribution ・コンテナ仮想化( Docker)に特化したOS ・オープンソース ・githubの最初のバージョンv0001.0.0は2013/7/3にタグが切 られている ・ベータリリースは2014/5/9
  • 6. CoreOSの特徴 ・A Minimal Operating System ! ・Painless Updating ! ・Docker Containers ! ・Clustered By Default ! ・Distributed Systems Tools ! !
  • 7. A Minimal Operating System ・小さく作られている ! ・平均的なLinuxのメモリ使用量の半分 ! ・公式サイトによると161MBしか使わないとのこと
  • 8. Painless Updating ・active / passive構成でrootパーティションが2つある ! ・OSのアップデート時にはpassiveの方を先に上げてから切 り替える ! ・無停止でのアップデート、ロールバックが可能 !
  • 9. Docker Containers ・CoreOS上のアプリケーションはDoker Container上で動作 ! ・Dockerのメリット(flexible、portable)を享受 !
  • 10. Clustered By Default 
 Distributed Systems Tools ・クラスタとして動かすことが想定されている(fleet) ! ・設定を共有(etcd) !
  • 11. fleet ・fleetが適切にクラスタにアプリケーションを分散、管理 ・アプリケーションが落ちたら他のホストに移動してくれる
  • 12. etcd ・configを共有する ・REST APIになっており、curlで読み書き可能   write : curl -L http://127.0.0.1:4001/v2/keys/message -XPUT -d value="Hello world”   read : curl -L http://127.0.0.1:4001/v2/keys/message !
  • 13. fleet = 艦隊
  • 14. _人人人人人_ > 無敵艦隊 <  ̄^Y^Y^Y^Y ̄
  • 15. CoreOSを使ってみよう!!
  • 16. CoreOSを使ってみよう!! ・EC2のAMI、GCEのimage等が用意されているのですぐ使える ! ・Vagrantなら以下のような感じですぐ動かせる $ git clone https://github.com/coreos/coreos-vagrant.git ! $ cd coreos-vagrant ! $ mv config.rb.sample config.rb ! $ mv user-data.sample user-data ! $ vagrant up ※僕の環境では「* The following settings shouldn't exist: functional_vboxsf」とかでたので、 Vagrantfileの該当行をコメントアウトして動かしました
  • 17. クラスタリングしてみる $num_instances=3 # 1 => 3 ! $expose_docker_tcp=2375 #コメントアウト ・config.rbの下記箇所を編集 ・user-dataのcoreos -> etcd -> discoveryを編集 #cloud-config ! coreos: etcd: #generate a new token for each unique cluster from https://discovery.etcd.io/new discovery: https://discovery.etcd.io/<key> #↑のリンクでkeyを取得して貼り付け 設定を変えたら仮想マシン上げ直し
  • 18. クラスタリングしてみる # fleet $ git clone https://github.com/coreos/fleet.git $ cd fleet $ ./build ! # 環境変数設定 $ export FLEETCTL_ENDPOINT=http://<クラスタのどれか>:4001 ! # クラスタが見えるかチェック $ bin/fleetctl list-machines -l MACHINE IP METADATA 5bc026ef05e74d968bd93033dc9b820c 172.17.8.103 - d510bda5b2144065ab5115e612d0d7c6 172.17.8.102 - ec71fb2ae57243ed831d1e96276ed815 172.17.8.101 - ・ローカル(ホストOS)にfleetを入れる
  • 19. クラスタリングしてみる ! $ bin/fleetctl submit examples/hello.service #サンプルを実行 ! $ bin/fleetctl start hello.service Job hello.service launched on ec71fb2a…/172.17.8.101 ! $ bin/fleetctl list-units UNIT STATE LOAD ACTIVE SUB DESC MACHINE hello.service launched loaded active running Hello World ec71fb2a.../ 172.17.8.101 ・fleetでアプリケーションを起動
  • 20. 補足:Unitとは [Unit] Description=Hello World ! [Service] ExecStart=/bin/bash -c "while true; do echo "Hello, world"; sleep 1; done" ・hello.serviceの中身 Unitとはsystemdの起動の単位
  • 21. 補足:Dockerを使う [Unit] Description=My Apache Frontend After=docker.service Requires=docker.service ! [Service] ExecStart=/usr/bin/docker run --name apache -p 80:80 coreos/apache /usr/sbin/apache2ctl -D FOREGROUND ExecStop=/usr/bin/docker stop apache ! [X-Fleet] X-Conflicts=apache.*.service 例:Apacheのコンテナを起動する ExecStartで「docker run」すればよい
  • 22. ご清聴ありがとうございました

×