ubuntu前書きRancherは、運用環境でコンテナを実行および簡単に管理するための、オープンソースの自己ホスト型の完全なプラットフォームです。Dockerイメージ自体であるRancherサーバーは、Dockerが利用可能なすべてのLinuxホストで動作します。Rancherを魅力的なソリューションにする主な機能のいくつかは次のとおりです。クロスホストネットワーキング:Rancherに追加されたすべてのサーバーがリンクされ、コンテナ間の安全な通信が可能になります。負荷分散:負荷分散サービスが含まれており、コンテナ間または複数のクラウド間でワークロードを分散します。サービスの検出:Rancherには、コンテナとサービスを名前で識別できるようにする内部DNSシステムが含まれているため、ネットワーク上の他のサービス内で使用できます。インフラストラクチャ管理:Rancherを使用すると、クラウドプロバイダーのコンピューティングリソースを追加、監視、管理できます。オーケストレーションエンジン:Rancherは、Cattle、Swarm、Kubernetes、Mesosなどの最も一般的なコンテナーオーケストレーションフレームワークをサポートする唯一のコンテナー管理プラットフォームです。そのため、これらのフレームワークのいずれかでインフラストラクチャが既に機能している場合は、Rancherを簡単に使用できます。オープンソース:Rancherは無料で、オープンで、透明です。インフラストラクチャを完全に制御できます。[Node.js]アプリケーションをデプロイするRancherクラスターを構築します。このチュートリアルの最後に、単純なNode.jsアプリケーションの4つの負荷分散されたインスタンスと、永続ストレージ用の個別のデータコンテナーを備えたMongoDBサーバーがあります。14.04ドロップレット1つ。Rancherを使用して、それぞれ1GBのRAMを備えた6つの追加のドロップレットを作成します。Rancherで初期ドロップレットを設定します。データストレージにMongoDBを使用するNode.jsアプリケーション。Hapi.jsライブラリを使用した簡単な例を提供します。これは、独自のアプリケーションをまだ準備していない場合に使用できます。repository]にあります。ローカルマシンにGitがインストールされているため、サンプルアプリケーションを複製できます。[公式Gitインストールドキュメント]に従ってください。ローカルマシンにDockerがインストールされているため、デプロイするアプリケーションイメージを構築できます。[公式ドキュメント]を参照してください。これは、Dockerイメージの無料の公開レジストリです。ここでアプリケーションコードをホストし、Rancherを使用して複数のホストにデプロイできます。Hubのユーザー名が必要です。Applications&APIページにアクセスして生成できる読み取りと書き込みの両方のアクセス権を持つDigitalOceanアクセストークン。追加のホストを作成するためにRancherに入力する必要があるため、このトークンをコピーします。コンテナ、イメージ、Dockerfilesなどのhttps://docs.docker.com/engine/reference/glossary/[Dockerの概念]の基本的な知識も必要です。16.04でDockerをインストールして使用する方法を参照してください。ステップ1-Node.jsアプリケーションの調査このチュートリアルでは、メッセージを受信して​​記録し、以前に送信されたすべてのメッセージをリストするHapi.jsフレームワークに基づいたシンプルなNode.jsアプリケーションを使用します。イメージの作成時にDockerを使用してこれらの値を設定できるように、アプリケーションがどのように機能し、どのように構成値を受け取るかを調べてみましょう。サーバーではなく、ローカル開発マシンでアプリケーションとDockerイメージを準備します。次のコマンドを使用して、サンプルアプリケーションをローカルマシンに複製します。https://github.com/do-community/hapi-example次に、プロジェクトディレクトリに移動します。server.js`を見てみましょう。これには、MongoDB接続とサーバーを初期化するコードが含まれています。このファイルをローカルのテキストエディターで開くと、次の内容が表示されます。server.js`ファイルの重要な部分は次のとおりです。`ファイルから環境変数をロードします。+`パッケージのドキュメントを確認できます。開発プロセスのためにのみ、このファイルに変数を保存します。ターミナルに手動で変数を書き込むよりも簡単です。本番環境では、DockerからRancherを介して変数を取得します。」という環境変数を使用して、フォールバック値「+3000」を使用してサーバーのポートを設定します。+`はNode.jsアプリケーションの一般的な規則です。この値は必要に応じて変更できます。[上記の「+1023+」以上「+65535+」であることです]。+`という環境変数を使用してMongoDBサーバーに接続します。'');この環境値は、MongoDBコンテナーを作成すると、MongoDBサーバーのホスト名を使用してRancherで定義されます。値「++」は接続するデータベースの名前であり、存在しない場合は自動的に設定されます。アプリが何を探しているのか、ポートとデータベース接続をどのように構成するかについての背景がわかったので、Dockerを見てみましょう。ステップ2-Dockerイメージの構築RancherはDockerイメージを使用してアプリケーションをサーバーにデプロイするため、アプリケーション用のDockerイメージを作成しましょう。+`というファイルが必要です。このファイルは、複製したアプリケーションリポジトリに既に含まれています。その内容を見て、仕組みを理解しましょう。テキストエディタで開くと、次のコードが表示されます。"start"]各ステップを詳しく見てみましょう。次の行が表示されます。image]の上にイメージが構築されていることを宣言し、アプリからNode.jsのバージョン6を選択しているそのバージョン以上でのみ利用可能ないくつかのES6機能を使用します。本番環境で*最新*を使用するのではなく、特定のバージョンを選択することをお勧めします。これにより、アプリを壊す可能性のある変更を避けることができます。その行の後、作業ディレクトリを設定します。_`という新しいディレクトリを作成します。これは、アプリケーションが存在する場所です。+`が必要に応じて中間ディレクトリを作成することを意味します。次に、イメージの内容をそのディレクトリにコピーします。次に、この新しいディレクトリを作業ディレクトリとして設定し、後続のコマンドがそのディレクトリから実行されるようにします。+`コマンドを実行し、アプリの本番依存関係をインストールします。--production次に、次の2行が表示されます。」という環境変数を定義します。この変数が定義されていない場合に備えて、デフォルト値として「+3000」を設定します。次に、そのポートを公開して、コンテナの外部からアクセスできるようにします。環境変数を使用すると、アプリケーションコードを書き直すことなく、これを簡単に変更できます。このアプリケーションはこれらの環境変数を使用するように設計されていることを忘れないでください。Dockerfileの最後のステップでは、Node.jsサーバーを実行します。+`フォルダーにいることを確認し、次のコマンドを実行します。`を使用してDockerイメージを作成します。コマンドの最後にあるドットに注意してください。`へのパスを指定します。`フラグは画像にタグを設定します。これは画像に適用するラベルで、画像からコンテナインスタンスを作成するために使用できます。Hubのユーザー名をプレフィックスとして使用します。Hubのリポジトリ名と一致する必要があります。次に、作成したばかりのイメージをテストして、すべてが期待どおりに機能することを確認します。前に見たように、アプリケーションはMongoDBに依存しているため、アプリケーションがデータを保存するために使用できるMongoDBコンテナーを作成しましょう。Dockerイメージに基づいてMongoDBコンテナーを作成および開始します。+`オプションを使用して、コンテナに一時的な名前を割り当てます。アプリケーションのテストが終了したら、その名前を使用してサーバーを停止します。ホストポート「+27017」をコンテナによって公開されているポートにバインドし、ローカルのWebブラウザーを使用してMongoDBが実行されていることをテストできるようにします。最後に、使用する画像を指定します。すべてが期待どおりに機能することを保証するために、アプリケーションが開発された同じバージョンのMongoDBを使用することをお勧めします。この場合、バージョン「3」を指定します。MongoDBが実行されています。次のコマンドを実行して、アプリケーションコンテナーを実行し、MongoDBコンテナーにリンクします。`をコンテナーによって公開されたポートにマップします。`を作成したときに使用したポートと同じです。」という環境変数を追加します。+`パラメーターを使用すると、データベースコンテナーの名前をアプリケーションのコンテナー内のホストとして使用できます。+`にアクセスしてアプリケーションをテストします。空のページが*エラーなしで表示されます*。Dockerイメージがローカルで機能することが証明されたので、ローカルコンテナーを停止して削除しましょう。コンテナを削除することは、イメージを削除することと同じではないことに注意してください。後でコンテナを再作成したり、画像をRancherにプッシュしたりできるように、画像はそのまま残ります。これは、ローカル環境をクリーンアップした後に行います。最初に、以前に定義した名前を使用してデータベースコンテナを停止します。stopコンテナが停止したので、もう必要ないのでマシンから削除できます。rmアプリケーションコンテナに対して同じ手順を繰り返します。停止してから削除します。rm次に、Rancherで使用できるように、作業イメージを公開しましょう。Hubへの画像のアップロードRancherを使用してコンテナをデプロイするには、Dockerレジストリ_にアクセスする必要があります。ここで、Dockerイメージを保存するリポジトリを作成できます。Hub]を使用します。Hubは、パブリックリポジトリに無料で使用できます。Hubにログインします。ログインしたら、画面の右側にある[リポジトリの作成]ボタンをクリックします。次のようにフィールドに入力します。名前(必須):リポジトリの名前。この場合は「++」です。説明:将来的に画像をすばやく識別するための短い説明。完全な説明:画像の参照としてマークダウンドキュメントをここに追加できますが、アプリケーションは非常に単純なので、このフィールドを空のままにしておくことができます。可視性:自分だけがアクセスできるプライベートな画像、または誰でも画像を使用できるパブリックな画像を設定できます。このチュートリアルでは、パブリックリポジトリを作成します。すべての必須フィールドに入力したら、[作成]ボタンをクリックします。プロセスが完了すると、新しいリポジトリサイトにリダイレクトされます。Hubにログインする必要があります。端末に戻り、次のコマンドを実行します。loginユーザー名とパスワードの入力を求められます。ほとんどのCLIツールと同様に、パスワードを入力しても表示されません。Hubにアップロードします。これにより、すべてのファイルがリポジトリにアップロードされます。/ローカルのインターネット接続によっては、画像をプッシュするのに数分かかる場合があります。イメージが正常に公開されると、Rancherを使用してホストをセットアップできます。手順4-ホストサーバーの作成とラベル付けRancherを使用して、サービスを展開するために必要なすべてのホストを作成しましょう。Node.jsアプリケーション用に2つ、MongoDBサーバー用に1つ、ロードバランサー用に1つ必要です。+」にアクセスしてRancherインターフェースにアクセスし、次の手順に従って必要な4つのホストを作成します。*ボタンをクリックします。*ホストに移動します。+」までの名前が自動的に生成されます。*フィールドに貼り付けます。