Ubuntu 16.04でAlibaba Cloud ECSインスタンスにRancherをインストールする方法


今回のブログでは、Ubuntu 16.04でインストールしたAlibaba Cloud ECSインスタンスにRancherをインストールする方法を紹介します。

本ブログは英語版からの翻訳です。オリジナルはこちらからご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。

前提条件

Alibaba Cloud Elastic Compute Service (ECS)インスタンスが有効化されており、有効な支払い方法を確認している必要があります。新規ユーザーの場合は、Alibaba Cloudアカウントで無料アカウントを取得することができます。ECSインスタンスのセットアップ方法がわからない場合は、このチュートリアルまたはクイックスタートガイドを参照してください。ECSインスタンスには、少なくとも1GBのRAMと1つのCoreプロセッサが必要です。

手順

以下の手順に従って、Alibaba Cloud ECSインスタンスにRancherをインストールする方法を説明します。

Dockerのインストール

Rancherをインストールして実行する前に、RancherにはDockerが必要なので、まずDockerをインストールする必要があります。まず、以下のコマンドで古いdockerファイルを削除します。

sudo apt-get remove docker docker-engine docker.io

次に、利用可能なパッケージをすべてアップデートします。sudo apt-get updateコマンドを実行すると、それがあなたのために仕事をしてくれます。次に、以下のコマンドを使用して、aptがHTTPSでリポジトリを使用できるようにするためのパッケージをインストールします。

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

以下のコマンドでDockerの公式GPGキーを追加します。

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

ここで、キーの指紋の最後の 8 桁を検索して、キー 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 を持っていることを確認します。次のコマンドを使用できます。

sudo apt-key fingerprint 0EBFCD88

このような出力が表示されるはずです。

pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <[email protected]>
sub   rsa4096 2017-02-22 [S]

ここで、以下のコマンドを使用して安定版リポジトリを設定します。

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

次に、sudo apt-get updateコマンドを使ってパッケージリストを再度更新し、以下のコマンドを使ってリポジトリ内のDockerの利用可能なバージョンを全てリストアップします。

apt-cache madison docker-ce

出力はこんな感じになるはずです。

docker-ce | 17.09.1~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 17.09.0~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 17.06.2~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 17.06.1~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 17.06.0~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 17.03.2~ce-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 17.03.1~ce-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 17.03.0~ce-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages

以下のコマンドで=の後に最新の安定版の2列目であるversion-stringを追加して、Docker CEの最新バージョンをインストールします。次に、以下のコマンドを使用して、お好みの特定のバージョンのDockerをインストールします。

sudo apt-get install docker-ce=17.09.1~ce-0~ubuntu

バージョン文字列を付けずにDockerをインストールすることもできますが、本番環境用に特定のバージョンのDockerをインストールすることをお勧めします。以下のコマンドでDockerが正しくインストールされていることを確認してください。

sudo docker run hello-world

このコマンドは、テストイメージをダウンロードし、コンテナ内で実行します。コンテナが実行されると、情報メッセージを表示して終了します。以下の出力のようなメッセージが表示されるはずです。

Hello from Docker!

このメッセージは、インストールが正しく動作しているように見えることを示しています。

このメッセージを生成するために、Dockerは以下の手順を実行しました。

1、DockerクライアントがDockerデーモンに連絡しました。
2、DockerデーモンがDocker Hubから「hello-world」イメージを引っ張ってきました。(amd64)
3、Dockerデーモンはそのイメージから新しいコンテナを作成しました。
4、Dockerデーモンはその出力をDockerクライアントにストリーム配信し、その出力をターミナルに送信しました。

もっと野心的なことに挑戦するには、Ubuntuのコンテナを使って実行してみましょう。

 $ docker run -it ubuntu bash

無料のDocker IDでイメージの共有や、ワークフローを自動化。
https://cloud.docker.com/

その他の例やアイデアについては、こちらをご覧ください。
https://docs.docker.com/engine/userguide/

Rancherのインストール

必要な依存関係をすべてインストールしたので、Rancherをインストールして実行する準備ができました。以下の Docker コマンドを実行してください。

sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server:stable

Rancher サーバーの起動には 1 分もかかりません。その後、お気に入りのウェブブラウザを開き、お使いのサーバーの http://YourServerIP:8080 のポート 8080 にアクセスしてください。何も問題がなければ、Rancher のユーザーインターフェースが表示され、最初のクラスターを追加する際のガイドが表示されます。

Rancherのアクセス制御を設定する

Rancher をインストールした後は、アクセス制御の設定を行う必要があります。Rancher のアクセスコントロールを設定することで、Rancher サーバーへのアクセス権を持つユーザーを管理することができます。

ウェブページ上部のADMINメニューにカーソルを合わせ、アクセスコントロールをクリックします。ここではローカル認証を使用したいので、LOCAL をクリックし、ユーザー名とパスワードを入力します。最後に、ローカル認証を有効にするボタンをクリックします。ローカル認証が有効になった状態でRancherのダッシュボードにリダイレクトされます。

新しいホストを追加する

ホストは Rancher 内で最も基本的なリソースの単位であり、仮想または物理の Linux サーバーとして表現されます。Rancher に新しいホストを追加するには、新しい Alibaba Cloud ECS インスタンスを作成する必要があります。ここでは、Ubuntu オペレーティングシステムを搭載し、2GB 以上の RAM を持つ新しい Alibaba Cloud ECS インスタンスを使用しています。まず、この2つのサーバーを区別するために、新しいホスト名を設定します。以下のコマンドを実行し、任意のホスト名を設定します。

sudo hostnamectl set-hostname host01

ここで、次のように ssh を使ってホストサーバに接続します。

ssh sajid@IPAddress of host01  

次に、このスクリプトを使って最新のDockerをインストールします。

curl -fsSL https://get.docker.com -o get-docker.sh

このスクリプトをsh get-docker.shコマンドを使って実行すると、仕事をしてくれます。Dockerをインストールしたら、以下のコマンドを使ってdockerサービスを起動し、起動時に起動できるようにする必要があります。

systemctl start docker
systemctl enable docker

次に、Rancherサーバーにrancher host01を追加する必要がありますが、そうするには、Rancherのダッシュボードを開き、INFRASTRUCTURメニューにカーソルを移動し、Hostsをクリックします。次の画面で、ホストの追加ボタンをクリックすると、ホストの登録URLを聞かれるので、ここではデフォルトを使用して保存ボタンをクリックします。

次の画面では、ホストの種類を選択します。RancherはAmazon EC2, Azure, DigitalOcean, Exoscaleなど多くのホストタイプをサポートしています。とりあえず、カスタムホストタイプを選択し、rancher host01サーバーのIPアドレスを入力し、ボックスにDockerコマンドをコピーします。

今度はrancher host01のターミナルシェルに行き、このようにdockerコマンドを貼り付けます。

sudo docker run -e CATTLE_AGENT_IP="192.168.33.11"  --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.9 http://192.168.33.10:8080/v1/scripts/C7871D15E9CE6FFA892F:1514678400000:T9qDygb2pHroTMBuqA9Jylol8tU

上記のコマンドを実行すると、rancher-host01 サーバー上に新しいコンテナ Rancher Agent がダウンロードされ、作成されます。最後に、Rancher ダッシュボードのホスト追加ページに戻り、閉じるボタンをクリックしてください。

最後に

このチュートリアルでは、Ubuntu 16.04でインストールしたAlibaba Cloud ECSインスタンスにDockerとRancherをインストールする方法を学びました。また、Alibaba Cloud ECSインスタンス上でDockerとRancherを設定しました。さらに、同様にRancherホストを追加しました。これで、より多くのホストをデプロイすることができ、他のコンテナやアプリケーションをデプロイする準備が整いました。

アリババクラウドは日本に2つのデータセンターを有し、世界で60を超えるアベラビリティーゾーンを有するアジア太平洋地域No.1(2019ガートナー)のクラウドインフラ事業者です。
アリババクラウドの詳細は、こちらからご覧ください。
アリババクラウドジャパン公式ページ