Translate

2015年3月16日月曜日

The Docker User Guide: Docker Swarm を翻訳してみる


新たな機能として提供されたSwarmに関する以下のドキュメントを翻訳してみました。

 Docker Swarm
 https://docs.docker.com/swarm/


ユーザガイドだと概要レベルで、詳しい情報は殆ど外のリンクになってました。
概要レベルで知りたい方は読んでみてください。

なお参照される際は at your own risk でお願いします。

-------

Docker Swarm


Docker Swarm は、Dockerのネイティブクラスタリングを実現します。Docker Swarmは、複数のDockerホストのプールを単一の仮想的なホストに切り替えます。

Swarmは標準Docker APIを提供します、このためDockerデーモンとすでに通信可能などんなツールでもSwarmを使って複数のホスト群へ透過的にスケールさせることができます:Dokku、Compose、Krane、Flynn、Deis、DockerUI、Shipyard、Drone、Jenkins..そしてもちろんDockerクライアント自身も含みます。

ほかのDockerプロジェクトのように、Swarm"batteries included but removable"(取り外し可能な物以外を含むバッテリ)原則に従っています。Swarmはボックスの外部のバックエンドを単純にスケジューリングを取り付け、そして初期開発が落ち着いたら、プラグ挿入可能なバックエンドを有効にするためにAPIを開発します。

ゴールは単純な利用事例における独創的な経験を円滑に提供することです。そして、大規模製品開発のためのMesosのように、より強力なバックエンドとの交換を可能としています。

インストール


 注意:
 インストール前提は、Swarmノード群がすべて同一リリースのDockerデーモン
 (バージョン1.4.0以降が動作しており、それらがSwarmマネージャがアクセス可能な
 TCP ポートを listen する設定が実施されていることだけです。

公式Dockerイメージを使えば、Swarmを最も簡単に使いはじめることができます。

 docker pull swarm

ノードのセットアップ


Swarmノードでは、参照されるDockerデーモンが登録されたswarmノードエージェントを実行します。そして監視して、ディスカバリーバックエンドのステータスを更新します。

次の例は、Docker Hubベースのトークンディスカバリサービスを使用しています:


 # クラスタの作成
 $ docker run --rm swarm create
 6856663cdefdec325839a4b7e1de38e8 # <- cluster_id="" is="" this="" unique="" your="">

 # 各ノード上で、swarmエージェントを開始する。
 # はパブリックではないIP(例:192.168.0.X)を指定する。
 # (かつswarmマネジャがエージェントにアクセス可能な)
 $ docker run -d swarm join --addr= token://

 # 適当なマシンもしくはあなたのラップトップ上で
 # マネジャの開始
 $ docker run -d -p :2375 swarm manage token://

 # 通常のdocker クライアントを使用
 $ docker -H tcp:// info
 $ docker -H tcp:// run ...
 $ docker -H tcp:// ps
 $ docker -H tcp:// logs ...
 ...

 # クラスタ上のノードをリスト
 $ docker run --rm swarm list token://
 

 注意:
 Swarmマネジャが各ノード上のノードエージェントと通信可能にするために、
 共通のネットワークインターフェイスでlistenしなければなりません。
 これは「-H」フラグを使って開始することでアーカイブ可能です。
 (例: -H tcp:////0.0.0.0:2375)


TLS


SwarmCLISwarmとの間で、そしてSwarmDockerノードの間でさえもTLS認証をサポートしています。ただし、すべてのDockerデーモン認証とクライアントが認証は同一のCA認証書でサインされていなければなりません。

クライアント、サーバ両方でTLSを有効にするための、Dockerが指定されることが可能な同一のコマンドラインオプション:

 swarm manage --tlsverify --tlscacert= --tlscert= --tlskey= [...]

Docker上でのTLS認証のセットアップ方法および証明書の生成に関する詳細は、Dockerドキュメンテーションを参照してください。

 注意:
 「extendedKeyUsage = clientAuth,serverAuth」で
 Swarm証明書を生成しなくてはなりません。


ディスカバリサービス


詳細は、ディスカバリサービスドキュメントを参照してください。


高度なスケジューリング


高度なスケジューリングについての詳細を学習するにはフィルタ戦略を参照してください。


Swarm API


Docker Swarm APIはDockerリモートAPIと互換性があり、拡張して新たなエンドポイントが使えます。


0 件のコメント:

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...