Docker Machine、Docker Swarm、Docker Composeの3つの機能を組み合わせることで、Dockerの環境がない状態から、Docker環境を構築し、分散アプリケーションのための動的なクラスタを構成し、そこへアプリケーションをデプロイすることがすべてコマンドと構成ファイルによって実行できるようになります。 これによって分散アプリケーションが簡単にクラスタ環境ごとポータブルになり、かつ動的な構成と運用が容易になると説明されています。
本稿は Docker Swarm Exceeds Kubernetes Performance at Scale (2016/3/9) の和訳です。 コンテナのオーケストレーションについては既に結論が出ていると、コミュニティで話す人が何人かいます。 現実 は真実を越えられません。500人以上を対象に行ったDevOpsとマイクロサービス、パブリッククラウドに関する最近の調査によって、Docker Swarm、Google Kubernetes、そして Amazon EC2 Container Service (ECS)の間でのオーケストレーションに関する競合の存在が明らかになりました。 あなたは今どのコンテナ・オーケストレーションツールとマネージメントツールを使っていますか? 回答数:501、無回答数:0 どのオーケストレーションツールが自分の環境にあっているかを考えるためには、次の三つのキ
Docker 1.9がリリース。マルチホストネットワーキング、クラスタリングのDocker Swarmなどが本番環境で利用可能に Docker 1.9では、マルチホストネットワーク機能が安定版となり、永続的ストレージ機能が強化され、クラスタリングツールのDocker Swarmが正式版となりました。 マルチホストネットワーク機能 マルチホストネットワーク機能は、Docker Engineの機能として複数のホストにまたがる仮想ネットワークを作成可能です。任意のネットワークトポロジをコンテナに割り当てることができ、仮想ネットワークのおかげで、どのホスト上でコンテナを実行するかを気にせずにコンテナのネットワークを構成できます。 今回のリリースから安定版となるため、本番環境での利用が可能になりました。 永続的なストレージ Docker Engine 1.9では完全に再設計されたボリュームシステムが
マイクロソフトはクラウドサービス「Microsoft Azure」上でDockerコンテナを容易に展開できるサービス「Azure Container Service」の公開プレビューを開始しました。 Azure Container Serviceは、Dockerイメージをクラウドにデプロイし、分散システムとして実行、オーケストレーションなどを容易に実現するフルマネージドなサービス。 オーケストレーションツールとしてApach MesosもしくはDocker Swarmが用意されています。 Azure Container Serviceの仕組みは内部でMicrosoft Azureのリソースマネジャと連係しており、リソースのタグ付、ロールベースのアクセスコントロール、そしてAzureマネジメントポータルと統合されています。 Azure Container Serviceは昨年9月に発表されま
注意 UPDATED: 2017/02/07 この記事で説明しているクラスタは古い手法です。 本稿の内容で構築したクラスタでは docker service などの Swarm mode で導入されたコマンドが動作しません。 Docker 1.12 以降、 Swarm mode に DNS, LB が組み込まれており、外部のディスカバリサービス (Consul などの KVS) に依存しなくなりました。 Swarm mode は標準コマンド docker swarm でセットアップ可能なため、 docker-machine ssh でクラスタを構築できそうです。近日中に記事として公開予定です。 書きました → Swarm mode クラスタを構築して動かしてみる | Qiita TL;DR コマンド見れば分かる人向けの完成品はこちら → hidekuro/swarm-cluster-sam
OpenStackにKubernetesやDocker Swarmを統合、コンテナ対応を実現する「Magnum」。OpenStack Summit May 2015でデモ カナダのバンクーバで先週開催された「OpenStack Summit May 2015 Vancouver」。基調講演で取り上げられた大きな話題の1つが、OpenStackでDockerコンテナを扱えるようにする「Magnum」でした。 Magnumは今年の3月、OpenStackに正式参加したプロジェクトとして現在開発が進められています。これまでもOpenStackでコンテナを扱うためのツールはいくつか存在しました、Magnumはコンテナのオーケストレーション機能をOpenStackに統合する点が特長です。 OpenStack Summit May 2015 Vancouverの2日目の基調講演で、Magnumのチーム
第30回 Docker Swarmを知る 複数の物理サーバでDocker環境をクラスタ化する方法:古賀政純の「攻めのITのためのDocker塾」(1/3 ページ) 複数の物理サーバで稼働するDockerコンテナ同士が通信するには、どうすればよいのでしょうか。そのためには、Docker特有のコンポーネントを理解する必要があります。今回は、Docker環境のネットワーキングを実現するソフトウェアコンポーネントと具体的なコンテナ間の通信方法を紹介します。 複数の物理サーバで稼働するコンテナ同士の通信 Dockerの登場以来、コミュニティーで盛んに議論されていた話題の一つに、複数の物理サーバで稼働するコンテナ同士の通信(一般的にマルチホストネットワークといいます)があります。この連載で紹介していた内容は、全て1台の物理サーバでコンテナを稼働させるものでした。しかし、実際のエンタープライズシステムで
はじめに 前回、Docker MachineでAmazon EC2をコントロールしてみました。今回は更にDocker Swarmを組み合わせて、Amazon EC2上にDockerクラスタを構成してみたいと思います。 やってみた 前回同様、Amazon EC2で構築したAmazon Linux上で実行しています。 クラスタを作成する クラスタを作成し、クラスタグループを構成するためのクラスタIDを発行します。 $ sudo docker run swarm create 934afbacc9e635c52e8b6544a2eba998 マスターノードとなるDocker Machineを作成する クラスタの管理を行うマスターノードとなるDocker Machineを作成します。前回と違うのは--swarmオプション以降で、マスターノードとなるために--swarm-masterオプションを付与
新たなサーバー環境構築ツールとして普及が始まっているDockerは、その開発も積極的に行われている。そこで本連載記事では、4回に渡って最近Dockerに実装された新機能について紹介していく。今回は、Dockerが開発するDockerクラスタ管理・運用ツール「Docker Swarm」について紹介する。 Dockerを使ったクラスタ環境とは Dockerでは1つのアプリケーションを1つのコンテナに入れ、複数のコンテナを組み合わせてサービスを構築する、という手法が推奨されている。このような構成によって各アプリケーションを分離することで、セキュリティの強化や開発・運用の効率化が期待できる。また、コンテナはデプロイが容易であるため、同じコンテナを複数のマシン上で同時に実行させる負荷分散構成を取りやすいというメリットもある。 Dockerを利用したクラスタ環境についてはDockerが登場した当初から
Kubernetes, Docker Swarmって言葉よく聞くけど実はあんまりわかってない…というエンジニアに贈る。GKE概論Go初心者DockerkubernetesGoogleCloud はじめに この記事はGoogle Cloud Platform(1) Advent Calendar 2016とTSG Advent Calendar 2016として書かれています。(二股) GKE(Google Container Engin)はKubernetes上に構築されたDockerコンテナのクラスタ管理やオーケストレーションを行うサービスです。 僕がGKEに興味を持ったきっかけはGoogle I/O 2016 でのデモを見たことでした。 その映像を見たときは軽くドキュメントを読んだ程度だったのですが、その後メルカリに入社、ソウゾウ社に出向し、GAE/GOを本格的に使用するようになったこと
Othlo Tech ハンズオン手順 1. ハンズオンの目的と方針 Docker プラットフォームの基本動作を、手を動かしながら学びます。はじめに、鯨が喋るプログラムを例に、Docker コンテナの実行と、イメージ構築を行えるようにます。それから、サンプルのウェブアプリケーション、Nginx、WordPress(PHP+MySQL)を例にしてコンテナのネットワークとボリュームについて学びます。 2. 事前準備 今回のハンズオン作業は、さくらのクラウド上のサーバで作業を行います。 さくらのクラウドのコントロールパネルにログインし、仮想サーバの作成 仮想サーバへ SSH でログイン Docker Hub アカウントの登録と確認 ※ 今回の手順は VirtualBox など、皆さんの PC 上で行っても構いませんが、サポートの関係上、今回はクラウド上の仮想サーバを使います。 2.1 仮想サーバの
Docker 1.12 & Swarm Mode Introduction Docker の新しい技術と swarm モードの紹介 平成28年6月29日(水) Dockercon 2016報告会 #tistudy201606 発表資料 http://thinkit.connpass.com/event/28529/ ■捕捉 Docker 1.12: swarm モードと Ingress Load Balancing 概要 · Pocketstudio Technology Log https://pocketstudio.net/2016/06/23/docker-1-12-swarm-mode-and-ingress-load-balancing/ Swarm モード概要 — Docker-docs-ja 1.12.RC ドキュメント http://docs.docker.jp/engi
Docker swarm mode の構成をバックアップする スクリプトを書いた。 Ruby で書かれています。実行すると docker service create --name=lig -p 30007:26667 imagename docker service create --name=diary -p 30000:3000 --mount type=bind,source=/source/,target=/target diaryimage:v17 docker service create --name=mariadb -p 30023:3306 --mount type=bind,source=/mariadb,target=/var/lib/mysql --constraint=node.hostname==hostname mariadb:latest みたいな感じで出
Dockerを使って開発していると、本番環境でもDockerを使ってみたいなぁという気持ちになります。ただ、本番環境でDockerを使うのは、個人的にまだまだハードルが高そうな印象です。マルチホスト間のネットワークはどうするか?分散システムのクラスタリングはどうするか?コンテナのスケジューリングは?監視は?ログは?デプロイの仕組みは?負荷が高い時の対応はどうするのか?セキュリティは?など、運用面で色々と考えなければなりません。さらにDocker界隈のツールは様々なツールが存在していてどれから手をつけていいのか選択に困ります。最初はなるべく小さく始めたいところです。なので、今回、本番環境を意識したDocker環境をより少ないツールで作れるかどうか試してみました。ひとまず、クラスタ組んで、マルチホストネットワーキング機能が試せるところまで。使ったツールは以下になります。 CoreOS - Do
Abstract Heroku や Google Apps Engine は大変に便利ですが、ジョークアプリや自分専用のアプリなど全く収益性の無いアプリを沢山デプロイするにはちょっと高価です。 また、なんらかの事情で上記のようなプラットフォームに頼れないような環境で、オレオレ PaaS のようなものを構築できる知識を持っておくとなにかと便利です。 かつて、このようなものを構築するには、様々なソフトウェアとコンポーネントの知識が必要でした(簡単に構築できるものはあまり実用的ではありませんでした)。 しかし、時代は変わりました。おめでとうございます。今や Docker swarm mode によって、 PaaS モドキは簡単に作れるようになりました。殆ど知識は必要ありません。 しかし、これは終わりなき戦いのはじまりだったのです。 ここでは私は以下のことを話します Docker swarm mo
この記事でやること こういう感じのクラスタをつくります ポイントとしては、 EC2インスタンスを2台動かし、両方で swarm manager を動かす swarm agent を動かす ということをやります。 agentを複数ホストでやるやつは、ググれば結構出てきますが、 今回はmanagerも複数ホストでやってみます。 今回利用した各バージョンとかは以下のとおり。 AMI: ami-f2338ff2 CoreOS-stable-723.3.0-hvm CoreOS: 723.3.0 docker: 1.6.2 etcd: 2.0.12 docker swarm: 0.4.0 作ろう 以下、cloud-config を作っていきます あ、先に断っておきますが、 Docker Swarm によると現在まだ Note: Swarm is currently in BETA, so thing
Docker swarmを試してみた¶ TD; LR¶ docker swarmは気軽に使えてとても良いが、実運用は自分でちゃんと試してからの方がよさげ。 まえがき¶ Dockerの1.12.0からDocker swarmがdockerと統合され、クラスタ環境でのDockerが簡単に使えるようになりました。 この記事は夏休みの自由研究として、このDocker swarm modeについて調べてみた記録です。 長いです。細かいです。前提をいろいろ飛ばしています。全部読むことはおすすめしません。 間違っている点は指摘していただけると助かります。 リポジトリ¶ この文章に関するリポジトリhttps://github.com/shirou/docker-swarm-test docker engine: docker engineのCLI的なやつ。https://github.com/docker
タイトルの英語綴りが正しいか気になる。 tl;dr JMeter のクラスタ構成を Docker でなんとか出来ないかなと思ったら Docker Swarm というものがあるらしいのでチュートリアルしてみた。 Docker Swarm とは 参考 docs.docker.com イメージ Docker Swarm とは複数 Docker ホストをクラスタリングして個々の Docker エンジンを一つの Docker エンジンとして扱えるツール(という認識)で以下のようなイメージを頭に描いた。 チュートリアルしてみて上記のイメージは大体合っている気がしたが、実際に構築する場合には以下のように swarm クラスタ内には swarm manager という役割を持ったクラスタの master ノードが必要になる。 swarm manager となるノードについてはクラスタのオーケストレーション
背景 過去に大好評だったDocker入門の内容を2016年版にupdateした再入門投稿3本が終わったので、 まだ紹介していない機能を投稿していきます。 Docker Compose 入門 Docker Machine 入門(Hyper-Vの場合) Docker Machine 入門(AWSの場合) Docker 再入門3 2016 Docker 再入門2 2016 Docker 再入門1 2016 Docker 入門 (SlideShare) 動作環境 ThinkPad X200s OS:Linux MINT 18 ThinkPad X1 Carbon OS:Windows 10 Pro (Hyper-V) 個人的に開発環境OSはLinuxが主なので、MacOSやWindowsについては優先度が低いのでご了承ください。 Docker 1.12(docker swarm mode) 複数の
前回はDocker MachineでDockerノードを構築してみたので、今回は同時にアナウンスされたDocker Swarmでクラスタを構築してみます。 Docker Swarmとは Docker Swarmは複数のDockerホストをクラスタ化するためのツールです。Docker SwarmをAPIを受け取るフロントエンドとして、コンテナをクラスタのメンバー上で動かすことができます。 Docker Swarmのマネージャをホストとして指定すれば各種Dockerのツールもそのまま使えるようです。 ノードの構築 今回はIDCFクラウド上にnode1〜node3の3つの仮想マシンを作成しクラスタを後置鵜してみます。 3台の役割とlistenしているIP・ポートは以下の通りとします。 node1 マネージャ(tcp://0.0.0.0:12375) ノード(tcp://0.0.0.0:2375)
docker swarm 1.12.xのmanager1台/worker1台構成でクラスタ手動フェールオーバ/フェールバックして再起動する手順Dockerswarm はじめに 先日swarm manager1台/worker1台の構成で、おもむろにmanagerノードのOS再起動したらクラスタがぶっ壊れて悲しい思いをしたので、ちゃんとswarmクラスタのメンテナンス手順を調べました。 クラスタ運用する場合はスプリットブレインを避けるためにmanagerノードを3台以上立てるのが理想的ではありますが、開発環境などではそこまでリソースを割けないのでmanager1台運用にしてます。で、おもむろにmanagerを止めるとクラスタが壊れるので、安全にやるには一旦workerをmanagerに昇格してフェールオーバさせて、managerノードを再起動し、フェールバックさせるという手順を踏む必要があり
Docker Swarm Mode で Mastodon 立てる 公式に用意されている Docker Image はクソであれを使ってデプロイするのは混乱の元でしかない。ローカルで assets:precompile してそれをボリュームでどうにかしろとかクソすぎる。というわけでわりかし楽に使えるイメージを作った。 https://hub.docker.com/r/ssig33/mastodon/ 一応公式を擁護すると docker build 中にリンクができないみたいな問題があってそれがだるいみたいな話はある。 事前に用意 Redis と PostgreSQL をどっかに立てる。 Swarm mode 使って立ててもいい。 S3 にバケットを作って静的サイト配信を On にする。またその静的サイトを Cloudfront で配信するようにする。 何故こんなことをするかというとこういう問
Docker Swarm について 通常、Docker では、複数のホストにまたがってコンテナが存在する場合、docker コマンドを実行するたびに-H オプションを付加して接続先を切り替える必要が有りました。 結果として、複数のホスト上にコンテナが散財する場合、docker コマンドで透過的にコンテナを管理することが困難でした。 そういった問題はDocker Swarm を使うことで軽減することができます。 Docker Swarm は1 つ以上のDocker ホストを1 つのDocker ホスト(Docker Swarm manager) にpool することができるようになり、ユーザはそのDocker Swarm manager ホストに対してコマンドを発行することで、複数のDocker ノードをcluster として透過的に管理することができるようになります。 Docker Swa
*** note *** This only works with Docker Swarm Mode in Docker Engine 1.12.0 and later. It does not work with the separate Docker Swarm project Also this is a sample app meant for learning Docker. Running this app in production is insecure and should be avoided. If you want to run it in production you must take all security precautions, and in particular Protect the Docker daemon socket with SSL. T
おもしろい話をしようと思ったのですが、 15 分しかないので素早くやっていきます 結論 今すぐ Docker ベースで HA 環境を作らないといけない use Kubernetes ベンチャー企業でインフラのコストを低減させたい AWS や GCP が配ってるクーポンは無視して Heroku 使うべき デプロイが趣味の人 この場で Docker Swarm Mode を使いはじめるべき それ以外の人 Docker Swarm Mode にのんびり注目してみるといいです、全てが変わる可能性を持っている Kubernetes と比較した時に Docker Swarm mode が優れている点 Kubernetes の基本的な構成 引用元: kubernetesによるDockerコンテナ管理入門 - さくらのナレッジ Docker Swarm Mode の基本的な構成 図作成: ssig33 優
https://kazeburo.hatenablog.com/entry/2018/10/09/174111 という記事をみて、次のようなブコメを書いたのですが実際には試したことがなかったのでやってみることにしました。 これは1サーバーでも簡単にローリングアップデートできる Docker swarm が便利に使えるパターンなのではないだろうか / “普通のサーバでDocker ContainerをHot DeployしたかったのでProxy書い…” https://t.co/2KQhsm7Wfl — yteraoka (@yteraoka) October 10, 2018実行するアプリの準備次のような構成のものを構築します 構成 Global mode は kubernetes での DaemonSet のようなモードで、各ノードで起動されます。今回は1ノードしか用意しませんが、あとか
Azure Container Service ではオーケストレーションを選択する自由が有り、 Docker Swarm、Mesosphere DC/OS、 Kubernetes のいずれかを選べます。 3つも選べることは良いことなのですが、初めて使うと正直どれを選べば良いか迷います。 結論:Kubernetes を選ぶべき 結論から先に言うと Kubernetes を選ぶべきだと思います。今回はあまり技術的な部分(アーキテクチャ、機能性、安定性、性能)は触れずに、自分が普段行っている比較でまとめてみました。 理由1:Githubで比べる OSSのプロダクトでどれを選ぶべきか迷った場合は、GithubのPulseを参考にすると良いです。Docker Swarm、Mesosphere DC/OS、 Kubernetes のそれぞれ1ヶ月分を見ていきます。 Docker Swarm https
概要 Docker Swarmでマルチホスト環境上でDockerクラスタを構築します。 事前知識 Docker Swarmで構築する際は以下の3つの要素が必要になります。 ノードを管理するDiscovery backend Swarm Manager(マスターノード) Swarm Node(子ノード) 環境 Docker 1.11.0 Docker-machine 0.7.0 Docker-swarm 1.2.1 ノードを管理するDiscovery backend Swarmノードを管理するためのサーバです。以下4つが利用できます。 Docker Hub etcd Consul Zookeeper 今回はシンプルに構築できるよう、Docker HubがホスティングしているTokenベースで構築します。 注意としてDocker Hubの場合はKVSとして機能しないため、VXLANは構築できず
半年くらい前にこんな記事を書いたのですが、まあうまく行きませんでした。 okzk.hatenablog.com 頂いたブコメも試してみたんですけど、結果は芳しくなく。。。 Re: Dockerに載せたサービスをホットデプロイする - okzkメモ --stop-grace-periodの設定とDockerfileのHEARTBEATとSTOPSIGNALの設定をすれば出来るはず2016/08/17 06:19 b.hatena.ne.jp そんな中、元記事のヒトも試してみたようですけど、同じ結果に。。。 h3poteto.hatenablog.com そんな中、CVE-2016-9962も出ちゃったし、docker 1.13もリリースされたコトだし、ということでdocker 1.13でswarmモードをもう一回試してみました。 インストール後、swarm初期化 # docker swarm
Docker の swarm モードが何かについては Docker 1.12RC の swarm mode チュートリアル - Qiita を読んでおいてください。とにかくすごいやつです。ロードバランサがどうのとかそういうことを考える必要がほとんどなくなってすごいことになります。 ここで以下のようなサーバー群からなるクラスタがあるとします アメリカの糞みたいに遅い VPS にあるサーバー manager node1 node2 node3 日本のさくらインターネットにあるサーバー resource01 conoha にあるサーバー conoha1 conoha2 イタリアのよく分からない VPS にあるサーバー pizza sicilia ちなみにこれはぼくが今使っている swarm クラスタの実際の構成です。 たとえばここでアメリカの糞みたいに遅い VPS にのみデプロイしたいサービスが
概要 2014年末の DockerCon EUで発表された公式のオーケストレーションツール Machine, Swarm, Compose のうち Swarm についてのまとめ。 2015年02月26日にダウンロード可能な最初のバージョンが出た Swarm を一言で説明するならば、複数ホスト環境でも1ホストと同じように Docker を扱えるツール。 Machine, Compose については以下参照 Docker Machine リファレンス Docker Compose リファレンス Swarm とは Swarm は Docker 環境をクラスタリングするツール。 swarm ができること Docker コンテナを使ったシンプルなセットアップ リソースマネジメント / スケジューリング 既存の Docker Remote API と互換性のある Docker Swarm API を提
今年10月,dockerはkubernetesとの統合を発表した. http://www.publickey1.jp/blog/17/dockerkubernetesdockercon_eu_2017.html しかもローカルではdocker環境と同時にkubernetes環境が構築されるとか,わけわからんことも発表されている. kubernetesは更に流れに乗って,先日のAWS re:InventではEKSが発表された. https://aws.amazon.com/jp/eks/ これにより,おそらく将来的にはほとんどのdocker利用者がkubernetesを利用することになるんじゃないだろうか. docker運用サービス戦国時代 GKEではもともとkubernetesを使っていたため,GCP上でdockerコンテナをデプロイ・管理していた人たちはだいぶ初期からkubernetes
Docker swarm モードには Ingress というロードバランサ機構が存在しており、クラスタ内のどのマシンにアクセスしても上手いところ飛ばしてくれるみたいになってます。 が、実際にはこれがそんなに安定しているとは言い難く、自前での死活監視が必要、と昨日まで僕は考えていました。 ところが思い付きで全ノードをマネージャーに設定してみたところ嘘のように安定したので、そのようにするとよいと思いました。終わり。 Docker は未だにコンテナ側がホスト巻き込んで死滅するみたいなことがありえます。よって接続点としてマネージャーとしてのみ機能するノード(これは Drain にしておく)みたいのはそれはそれで置いておけばよいと思います。しかしとにかく全ノードをマネージャーにしたほうがネットワークが安定するのでよいです。 back to index of texts Site Search
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く