Ubuntu 16.04でRancherおよびDocker Machineを使用してマルチノード展開を管理する方法

前書き

Rancherは、https://github.com/docker/machine [Docker Machine]ベースのプロビジョニングをサポートしています。これにより、クラウドプロバイダーまたは独自のデータセンター内でDockerホストを簡単に作成できます。 Rancherを使用すると、Rancher UIから計算ノードを直接起動できます。これは、単一のインターフェースからマルチノード(将来的にはマルチクラウド)の展開を作成および管理できるようにするための小さいながらも重要なステップです。

このチュートリアルでは、Rancherに組み込まれているhttps://github.com/docker/machine/tree/master/drivers/digitalocean[DigitalOceanドライバー]を使用して、Rancher UIからドロップレットを作成し、Dockerコンピューティングを実行するためにプロビジョニングします。 Dockerコンテナをデプロイするために監視、スケーリング、および使用できるホスト。

前提条件

このチュートリアルを実行するには、次のものが必要です。

  • APIのDigitalOceanパーソナルアクセストークン。https://www.digitalocean.com/community/tutorials/how-to-use-the-digitalocean-api-v2#how-to-の指示に従って作成できます。 generate-a-personal-access-token [このチュートリアル]。

  • http://github.com [GitHub]アカウント。これを使用して、Rancherのユーザー認証を構成します。

ステップ1-ホストRancherへのドロップレットの作成

Rancherを使用してDockerホストとコンテナを管理するには、Rancherを実行する必要があります。 DigitalOceanのDockerイメージと少しの*ユーザーデータ*を使用して、すぐに起動して実行します。

まず、DigitalOceanアカウントにログインし、* Create Droplet を選択します。 次に、[画像の選択]セクションで、[*ワンクリックアプリ]タグを選択します。 18.04 画像の Docker 18.06.1〜ce〜3を選択します。

image:https://assets.digitalocean.com/articles/rancher_1604/CPDKRVERS.png [Docker image]

次に、* 1GB *ドロップレットを選択し、ドロップレットのデータセンター地域を選択します。

[追加オプションの選択]セクションで[ユーザーデータ]を選択し、表示されるテキストボックスに以下のスクリプトを入力します。 このスクリプトは、Dropletに + rancher / server + Dockerイメージをフェッチし、起動時にコンテナーでRancherサーバーを起動するように指示します。

#!/bin/bash
docker run -d --name rancher-server -p 80:8080 rancher/server

最後に、SSHキーを追加し、Dropletのホスト名を指定して、* Create *ボタンを押します。 次に、新しいサーバーが作成されるまで待ちます。 サーバーが起動すると、DockerはRancherイメージをダウンロードし、Rancherサーバーを起動します。これには数分かかる場合があります。

Rancherが実行されていることを再確認するには、新しいドロップレットにログインします。

ssh root@

ログインしたら、実行中のDockerコンテナーのリストを取得します。

docker ps

Rancherが実行されていることを確認する次のものが表示されます。

Outputec5492f1b628              "/usr/bin/entry /usr/"   15 seconds ago             3306/tcp, 0.0.0.0:80->8080/tcp

これが表示されない場合は、数分待ってからもう一度お試しください。 Rancherが実行されていることを確認したら、マシンからログアウトできます。

ステップ2-Rancherの認証の構成

サーバーが起動したら、 `+ http:/// +`を参照してRancher UIを表示します。 Rancherサーバーは現在インターネットに公開されているため、一般の人が環境を変更できないように認証を設定することをお勧めします。 Github OAuthベースの認証を使用するようにRancherを設定しましょう。

画面上部の* ADMIN *メニュー項目の横に警告アイコンが表示されます。

image:https://assets.digitalocean.com/articles/rancher_1604/Wxi8mXw.png [アクセス制御が設定されていません]

このリンクにカーソルを合わせると、アクセス制御が設定されていません*というメッセージが表示されます。 * ADMIN *メニューから Access Control *を選択します。 Githubがデフォルトの認証方法として選択されるため、ページの指示に従ってGitHubに新しいアプリケーションを登録します。

アプリケーションを登録したら、Githubのアプリケーションページから* Client ID および Client Secret をRancherユーザーインターフェイスのそれぞれのテキストフィールドにコピーします。 次に、[*保存]をクリックします。

次に、[* Test and enable authentication ]で[ GitHubで認証]をクリックし、表示されるウィンドウで[* Authorize application ]をクリックします。 ページがリロードされ、OAuthの設定手順が Configure Authorization *セクションに置き換えられます。 Rancherへのアクセスを許可する必要があるユーザーおよび組織を追加します。 変更する場合は、[保存]ボタンをクリックします。

次に、コンピューターホストを整理する環境を作成しましょう。

ステップ3-環境の作成

Rancherの環境では、ホストを論理セットにグループ化できます。 Rancherは* Default *という環境を提供しますが、独自の環境を作成しましょう。 画面上部の[デフォルト]リンクをクリックして[環境]メニューを表示し、[環境の管理]をクリックします。 ページに表示される[環境の追加]ボタンをクリックします。

プロジェクトの名前と説明を入力します。 他の設定はすべてデフォルトのままにして、[作成]をクリックします。 次に、プロジェクト選択メニューを再度使用して、新しい環境を選択します。

次に、この新しい環境でいくつかのホストを起動しましょう。

ステップ4-Rancher計算ノードの起動

Rancherデプロイメントを保護し、プロジェクトを追加したら、* Infrastructure メニューから Hosts を選択し、 Add Host *ボタンをクリックします。

  • Add Host 画面には、 Custom Amazon EC2 DigitalOcean Azure 、および Packet *という複数のプロバイダーが表示されます。 *カスタム*オプションには、DockerがプレインストールされたサーバーでRancher計算ノードを手動で起動する手順がリストされています。 その他は、それぞれのクラウドシステムで計算ノードを起動するために使用されます。

次の図に示すように、* DigitalOcean *オプションを選択します。

画像:https://assets.digitalocean.com/articles/rancher_1604/qmd0amx.png [image]

  • Access Token フィールドに、前提条件セクションから取得したDigitalOcean APIの個人アクセストークンを配置します。 次に、 Next:Configure Droplet *を押します。

画面に新しいフィールドのセットが表示されます。 次の詳細を入力します。

  • 名前:作成するサーバーの名前。 この場合、「+ host01 +」と入力します。

  • 数量:これを「1」のままにします。 これを増やすと、複数のホストが作成され、それぞれに自動的に名前が付けられます。

  • 画像:Rancherと互換性がないため、* Ubuntu 16.04.1 x64 *を無効にするを選択します。

  • サイズ:ドロップレットのサイズ。 * 1GB *ドロップレットのオプションを選択します。

  • 地域:ドロップレットが作成される地域。 地理的に近い場所を選択してください。

最後に、[作成]をクリックします。 Rancherは、Docker Machineを使用して指定されたDropletを作成し、Dockerをインストールします。 Rancherはまた、新しく作成されたDroplet上で `+ rancher-agent`を実行し、Rancherサーバーに順番に登録します。

数分以内に、Rancher UIに新しいホストが表示されます。 IPアドレス、プロセッサのクロック速度、メモリ、ストレージなど、ホストに関するいくつかの基本情報も取得します。

image:https://assets.digitalocean.com/articles/rancher_1604/GURVRo3.png [新しく作成したホスト]

このステップは、より多くの計算ノードを展開に起動するのに必要な回数だけ繰り返すことができます。 次に、Rancherの組み込みの監視と、メモを無効化および削除する方法について説明します。

手順5-展開の監視とスケーリング

計算ノードがプロビジョニングされたら、ホストのいずれかの名前をクリックして[監視]画面を表示します。この画面では、その計算ノードのCPU使用率とメモリ消費量を確認できます。

image:https://assets.digitalocean.com/articles/rancher_1604/Rk1Uw56.png [ホストのCPUおよびメモリ消費]

ほとんどのメモリを使用していることがわかった場合、またはCPUが継続的にホットで実行されている場合は、より多くのノードを起動してコンテナ密度を減らし、負荷を分散することができます。 これは、 `+ docker-machine`統合が本当に役立つ場所です。 Rancher UIからより多くの計算ノードをプロビジョニングすることにより、負荷スパイクに迅速に対応できます。

スパイクが減少したら、次の図に示すように、* Hosts ページにアクセスしてホストを特定し、 Deactivate *アイコン(2本の縦線があるボックス)をクリックして、追加のノードをシャットダウンできます。

image:https://assets.digitalocean.com/articles/rancher_1604/anwmwoT.png [ホストの非アクティブ化]

その後、*非アクティブ化*ボタンの右側のメニューから*アクティブ化*または*削除*をクリックできます。

結論

これで、RancherとネイティブDigitalOceanドライバーサポートとの統合を使用して、計算ノードを起動、監視、および非アクティブ化する方法がわかりました。 ここから、http://docs.rancher.com/rancher/v1.1/en/cattle/adding-load-balancers/ [ロードバランサーとしてRancherを使用する方法]を調べることができます。

Related