Ubuntu16.04でRancherとDockerマシンを使用してマルチノード展開を管理する方法
序章
RancherはDockerMachine ベースのプロビジョニングをサポートしているため、クラウドプロバイダー上または独自のデータセンター内にDockerホストを簡単に作成できます。 Rancherを使用すると、Rancher UIから直接計算ノードを起動できます。これは、単一のインターフェイスからマルチノード(将来的にはマルチクラウド)の展開を作成および管理できるようにするための、小さいながらも重要なステップです。
このチュートリアルでは、Rancherに組み込まれている DigitalOceanドライバーを使用して、Rancher UIからドロップレットを作成し、Dockerコンテナーのデプロイに監視、スケーリング、使用できるDockerコンピューティングホストを実行するようにプロビジョニングします。
前提条件
このチュートリアルに従うには、次のものが必要です。
- API用のDigitalOceanパーソナルアクセストークン。このチュートリアルの手順に従って作成できます。
- GitHub アカウント。これは、Rancherのユーザー認証を構成するために使用します。
ステップ1—ランチャーをホストするためのドロップレットを作成する
Rancherを使用してDockerホストとコンテナーを管理するには、Rancherを実行する必要があります。 DigitalOceanのDockerイメージと少しのユーザーデータを使用して、すばやく起動して実行します。
まず、DigitalOceanアカウントにログインし、ドロップレットの作成を選択します。 次に、画像の選択セクションで、ワンクリックアプリタグを選択します。 18.04イメージのDocker18.06.1〜ce〜3を選択します。
次に、 1GB ドロップレットを選択し、ドロップレットのデータセンターリージョンを選択します。
次に、追加オプションの選択セクションでユーザーデータを選択し、表示されるテキストボックスに以下のスクリプトを入力します。 このスクリプトは、ドロップレットにフェッチするように指示します rancher/server
Dockerイメージを作成し、起動時にコンテナー内のRancherサーバーを起動します。
#!/bin/bash
docker run -d --name rancher-server -p 80:8080 rancher/server
最後に、SSHキーを追加し、ドロップレットのホスト名を指定して、作成ボタンを押します。 次に、新しいサーバーが作成されるまで待ちます。 サーバーが起動すると、DockerはRancherイメージをダウンロードし、Rancherサーバーを起動します。これにはさらに数分かかる場合があります。
ランチャーが実行されていることを再確認するには、新しいドロップレットにログインします。
- ssh root@your_ip_address
ログインしたら、実行中のDockerコンテナのリストを取得します。
- docker ps
次のように表示されます。これは、Rancherが実行されていることを確認します。
Outputec5492f1b628 rancher/server "/usr/bin/entry /usr/" 15 seconds ago Up 13 seconds 3306/tcp, 0.0.0.0:80->8080/tcp rancher-server
これが表示されない場合は、数分待ってから再試行してください。 ランチャーが実行されていることを確認したら、マシンからログアウトできます。
ステップ2—ランチャーの認証を構成する
サーバーが起動したら、次の場所を参照します http://your_server_ip/
ランチャーUIを表示します。 現在、Rancherサーバーはインターネットに公開されているため、一般の人々が環境を変更できないように認証を設定することをお勧めします。 GithubOAuthベースの認証を使用するようにRancherを構成しましょう。
画面上部のADMINメニュー項目の横に警告アイコンが表示されます。
このリンクにカーソルを合わせると、アクセス制御が構成されていませんというメッセージが表示されます。 ADMINメニューからAccessControlを選択します。 デフォルトの認証方法としてGithubが選択されるため、ページの指示に従って新しいアプリケーションをGitHubに登録します。
アプリケーションを登録したら、クライアントIDとクライアントシークレットをGithubのアプリケーションページからRancherユーザーインターフェイスのそれぞれのテキストフィールドにコピーします。 次に、保存をクリックします。
次に、テストと認証の有効化で、 GitHubによる認証をクリックし、ポップアップウィンドウでアプリケーションの承認をクリックします。 ページがリロードされ、OAuthの設定手順が認証の構成セクションに置き換えられます。 ランチャーへのアクセスを許可する必要があるユーザーと組織を追加します。 変更を加える場合は、保存ボタンをクリックしてください。
次に、環境を作成して、コンピューティングホストを整理しましょう。
ステップ3—環境の作成
Rancherの環境では、ホストを論理セットにグループ化できます。 ランチャーはデフォルトと呼ばれる環境を提供しますが、独自の環境を作成しましょう。 画面上部のデフォルトリンクをクリックして環境メニューを表示し、環境の管理をクリックします。 ページに表示される環境の追加ボタンをクリックします。
プロジェクトの名前と説明を入力します。 他のすべての設定をデフォルトのままにして、作成をクリックします。 次に、プロジェクト選択メニューを再度使用して、新しい環境を選択します。
それでは、この新しい環境でいくつかのホストを起動しましょう。
ステップ4—ランチャーコンピューティングノードを起動する
ランチャーの展開を保護してプロジェクトを追加したら、インフラストラクチャメニューからホストを選択し、ホストの追加ボタンをクリックします。
ホストの追加画面に、カスタム、 Amazon EC2 、 DigitalOcean 、Azureのプロバイダーが表示されます。 、およびPacket。 Custom オプションには、DockerがプリインストールされているサーバーでRancher計算ノードを手動で起動する手順が一覧表示されます。 その他は、それぞれのクラウドシステムでコンピューティングノードを起動するために使用されます。
次の図に示すように、DigitalOceanオプションを選択します。
アクセストークンフィールドに、前提条件セクションから取得したDigitalOceanAPIのパーソナルアクセストークンを配置します。 次に、次へ:ドロップレットの構成を押します。
新しいフィールドのセットが画面に表示されます。 次の詳細を入力します。
- Name :作成するサーバーの名前。 この場合、次のように入力します
host01
. - 数量:これをそのままにします
1
. これを増やすと、複数のホストが作成され、それぞれに自動的に名前が付けられます。 - Image : Ubuntu 16.04.1 x64 は、Rancherと互換性がないため、無効になっています。
- サイズ:液滴のサイズ。 1GBドロップレットのオプションを選択します。
- Region :ドロップレットが作成されるリージョン。 地理的に近いものを選択してください。
最後に、作成をクリックします。 RancherはDockerMachineを使用して、指定されたドロップレットを作成し、Dockerをインストールします。 ランチャーも実行されます rancher-agent
新しく作成されたDropletで、Rancherサーバーに登録されます。
数分以内に、RancherUIに新しいホストが表示されます。 また、IPアドレス、プロセッサのクロック速度、メモリ、ストレージなど、ホストに関するいくつかの基本情報も取得します。
デプロイメントでより多くの計算ノードを起動するために必要な回数だけ、この手順を繰り返すことができます。 それでは、Rancherの組み込みの監視と、メモを非アクティブにして削除する方法について見ていきましょう。
ステップ5—展開の監視とスケーリング
計算ノードがプロビジョニングされたら、ホストの1つの名前をクリックして、その計算ノードのCPU使用率とメモリ消費量を確認できる[監視]画面を表示します。
ほとんどのメモリを使用している場合、またはCPUが継続的に高温で実行されている場合は、より多くのノードを起動して、コンテナの密度を減らし、負荷を分散させることができます。 これは、 docker-machine
統合は本当に便利です。 ランチャーのUIからより多くのコンピューティングノードをプロビジョニングすることで、負荷の急増にすばやく対応できます。
スパイクが弱まったら、ホストページにアクセスし、ホストを見つけて、非アクティブ化アイコン(2本の縦線のあるボックス)をクリックすると、追加のノードをシャットダウンできます。次の図では、次のようになります。
その後、非アクティブ化ボタンの右側のメニューからアクティブ化または削除のいずれかをクリックできます。
結論
これで、Rancherを使用して計算ノードを起動、監視、および非アクティブ化する方法と、ネイティブのDigitalOceanドライバーサポートとの統合について理解できました。 ここから、Rancherをロードバランサーとして使用する方法を調べることができます。