[和訳] Dockerエンタープライズ・エディションによるSwarmオーケストレーション #docker #swarm #kubernetes #k8s
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
本稿は Swarm Orchestration in Docker Enterprise Edition (2017/11/16) の和訳です。
DockerCon Europeにて私たちは、Dockerエンタープライズ・エディション (Docker EE) の次なるリリースには Kubernetes インテグレーション を含むことを発表しました。
Kubernetesをユーザにお届けでき、コミュニティにおいて私たちの役割を拡大し続けられることを喜ばしく思います。
しかしながらKubernetes対応が、Swarmオーケストレーションに別れをつげるものではないという事実を認識していただくことも重要です。
SwarmはDocker EEプラットフォームの構成上、不可欠なクラスタ管理コンポーネントを形成します。
さらにSwarmはDocker EEクラスタ内でKubernetesと並んで運用され、アプリケーションのデプロイ時に最も適したオーケストレーションツールを、ユーザがニーズに合わせて選択することを可能にします。
Docker EEソリューションにおいてSwarmが必要不可欠である理由:
- 既存ユーザとエコシステムのインテグレーションをサポートする
- オーケストレータの柔軟な選択肢をユーザに提供する
- 安全で高可用なクラスタ設計を提供する
既存ユーザとエコシステムのインテグレーション
今やDockerはSwarmオーケストレーションを標準とする、何百ものDocker EEユーザを有しています。
実際、DockerConでのユーザサミットにおいても、すべてのユーザがKubernetes対応の発表後も、Swarmを使い続けるつもりだと言及しました。
SwarmとKubernetesの両オーケストレーションが選択可能となることは、同じ企業内でも両者を扱う部署を持つユーザにとって、メリットがあることは疑いの余地がありません。
そして引き続きSwarm環境を構築・拡大するユーザ支援への尽力も継続してまいります。
さらにプラットフォーム・ソリューションの観点からは、例えばモニタリングとロギング両者のソリューションや、ストレージとネットワークのためのインフラなど、Docker EEとその他のITソリューションをより大きなエコシステムにおいて共存させることがとても重要です。
そのため私たちはSwarmに対して多くのサードパーティー・ツールを認証してきました。
これらのエコシステム・ソリューションを積極的に活用しているユーザや、テクノロジーパートナーがそれに対する投資を行ってきたユーザもいます。
私たちは今後も、既存のテクノロジーパートナーと、これらの結合ソリューションの恩恵を受けているDocker EEのユーザのサポートに尽力してまいります。
オーケストレータの柔軟な選択肢
Docker EEのビジョンは、複数のアーキテクチャ、複数のアプリケーションチーム、そして複数のオーケストレータを選択肢としてユーザに与えられる、1つのプラットフォームを提供することです。
Kubernetesは多種多様なオーケストレーション機能の提供が可能となる強力なソリューションです。
一方Swarmは、シンプルな学習曲線とパワフルな性能で、本番環境向けのコンテナデプロイの起動を容易にします。
Swarmオーケストレーションのいくつかの分野は、コンテナの新規ユーザや、下記のような単純明快なソリューションを求めているユーザを魅了するでしょう。
使いやすく簡単なアプリケーション・デプロイメント
CLIコマンドdocker service create またはDocker EEのUI上にあるサービス作成ウィザードで素早く、高可用性のSwarmによるアプリケーションを起動できます。
Swarmは、アプリケーションプロセスを高速化するためにシンプルな初期設定を使用します。
一方、より精通したユーザはAPIやCLI、そしてUIなどでこれらの設定をパラメータとしてカスタマイズできます。
すぐ使える高機能なネットワーキング
Docker Swarmは仮想IPアドレス(VIP)ベースのサービスディスカバリの統合およびロードバランシングの能力を有しています。
Docker EEは、とりわけ、ラベルやすぐ使える高機能なプロキシサービスを利用して、ホスト名でアプリケーションへルーティングすることも可能です。
ネットワークはAPIやCLIおよびUIにおいて第一級オブジェクトであるため、それぞれの仮想ネットワークにサービスを付加することでアプリケーションを分割することが容易なのです。
そして最後に、ネットワークの暗号化は、ネットワーク作成時にチェックボックスをクリックしたりCLIフラグを追加したりするだけで簡単に追加できます。
複数のインフラをサポート
Docker EEによるSwarmは、特別な設定などの必要はなくx86そしてIBM PowerおよびZメインフレームに搭載されたLinuxや、Microsoft Window Server 2016など一般的な製品を含む数多くのインフラをサポートします。
シンプルかつパワフルなクラスタ管理能力
Docker EEではSwarmを活用しパワフルなノード管理ができます。
またSwarmを活用することで、そのままでSwarmのワークロードのみならずKubernetesのワークロードにおいても、簡単に高可用性クラスタの構築が可能です。
次はこれについて詳しく見ていきましょう。
安全で高可用なクラスタ
アプリケーションのオーケストレーションにSwarmあるいはKubernetesのどちらを使用することになっても、Docker EEは、Swarmのクラスタ性能を活用し、安全で高可用なエンタープライズ向けコンテナを提供します。
クラスタ作成とノードの追加
Docker Swarmでのクラスタの作成方法は非常にシンプルで、最初のノードでdocker swarm initコマンドを打てば完了します。
Docker EEはこの機能により、シンプルな1行のインストールコマンドで、クラスタマネージャの起動が可能です。
新しいノードの追加も簡単です。
Docker EE UIから送られたトークンと共にdocker swarm join コマンドを、各ノードにコピー&ペーストすれば、Docker EEは自動的に必要なコンポーネントをダウンロードし、新規に追加するノードがクラスタに接続されるよう設定します。
どちらの場合もDocker EEはKubernetesコンポーネントを自動でインストールし、どのような環境においても使いやすいKubernetes対応のクラスタを提供します。
高可用性
(待機の状態にあるクラスタマネージャの)高可用性は、すべての企業の商用環境に不可欠なものです。
高可用なKubernetes対応クラスタを作成するには、分散キーバリューストアの拡張や、新たなコンポーネントのインストール、そして新しいノードすべてにおいて証明書を手動で複製しなければならないなど、ともすれば煩雑な作業を伴いがちです。
Docker EEではSwarmを活用することで、UIをクリックしたり、APIコールでワーカーノードをマネージャへと昇格させるなど、簡単なうえに高可用なクラスタリングが可能です。
操作はシンプルながら、Docker EEが適正なシステムのコンポーネント(オーケストレーションコントローラ、証明書、分散キーバリューストア、ユーザの認証/コンテナの認可など)をインストールし、すべてのマネージャノードに展開します。
このようにDocker EEはSwarmを活用することで、簡単な操作で高可用なKubernetes対応クラスタをすぐに使える状態で提供できるのです。
自動証明書ローテーションによる安全なクラスタリング
Dockerの原則の中核に 設定不要、デフォルトで安全、すぐ使える機能 をDockerプラットフォームにもたらす、というものがあります。
Docker Swarmクラスタリングは相互認証TLS搭載で、これがすべてのノードの通信時に、認証、認可および暗号化を提供します。
クラスタに追加されるすべてのノードには、ランダムに生成したIDを付与した新たな証明書を自動的に発行します。
そしてこれらの証明書は自動的にローテートされるのです。
これらの特性はKubernetesにも共通で、Swarm、Kubernetes両者のDocker EEクラスタにおいて、デフォルトでのセキュリティを強化します。
まとめ
Docker EEの次なるリリースでユーザは、SwarmとKubernetesのオーケストレーションを並んで運用することが可能となります。
これによりユーザ個々のニーズに最適なオーケストレーション・ソリューションを選択できるようになるのです。
Docker EEの価値を広げるエンタープライズ級のコンテナプラットフォームを、Kubernetesのワークロードに供給できることを喜ばしく思います。
またSwarmと既存のユーザ、および私たちのエコシステムを今後も引き続きサポートしてまいります。
来たるβ版に興味がございましたら、 https://www.docker.com/kubernetes からサインアップしてください。