CentOS
Docker
rancher
AlibabaCloud

Rancher🐮をAlibaba Cloudで構築する - Single Node 構築編


はじめに

Rancher 2.2 より Alibaba Cloud Container Service for Kubernetes へ対応したので遅ればせながら検証してみました。

:warning: 今回は環境構築までの記事です。

Announcing Added Support for Leading Kubernetes Services in China

Alibaba Cloud に Rancher環境を作る必要は特にないのですが、一応検証のため構築してみました😁

構築は下記の公式手順に沿って行います。

今回はまずSingle Node Installationで構築したいと思います。

Rancher 2.X Installation


Alibaba Cloud ECSインスタンス作成

Alibaba Cloud では仮想サーバーのことをElastic Compute Service(ECS)と呼びます。

この略称は・・・とは思うのですが中国語でも云服务器(ECS)なので如何にもならない😅

Elastic Compute Serviceプロダクトページ

Alibaba Cloud のコンソールにログイン後にElastic Compute Serviceを選択します。

image.png

「インスタンスを作成」を選択します。

image.png

公式の要件に沿ってインスタンスのスペックを決めます。

image.png

価格モデルは従量課金リージョンは東京を選択してください。

今回はSmallで十分なので1vCPU,4GBメモリのインスタンスを選択します。

:information_source: リージョンはお好きなところで構いません。

image.png

OSはCentOS7、ストレージはとりあえず50GiBで作ります。

image.png

ネットワーク設定の画面でVPC、AZ、パブリックIPの割り当て、セキュリティグループの選択を行います。

:warning: セキュリティグループは事前に作成して置いてください。セキュリティグループの作成から別タブで作成ページにも飛べます。

:warning: 検証目的のためパブリックIPの割り当てを行いますが、実環境では慎重にご検討ください。

image.png

ログイン認証にキーペアを選択し使用するキーペアを選択します。キーペアは事前に作成しておいてください。

任意のインスタンス名やホスト名を設定してください。

:information_source: インスタンス名は管理コンソール上での識別用でホストは仮想サーバーのHostnameに設定されるものになります。

今回は使いませんが必要に応じて削除保護やcloud-initを設定します。

image.png

利用規約にチェックを入れてインスタンスの作成を選択します。

image.png

こんな感じのポップアップが出るのでコンソールを選択します。

image.png

ここでインスタンスが表示されていれば作成完了です。

image.png


Alibaba Cloud ECSへのsshアクセス

仮想サーバーが作成されたので環境にsshアクセスしてインストールを行います。

:warning: 検証目的のためダイレクトに仮想サーバーへアクセスしますが、実環境では踏み台やVPNアクセスをご検討ください。

管理コンソールのインスタンス情報からパブリックIPを取得します。

image.png

Tera Termなどのターミナルソフトかコマンドラインからアクセスします。

:information_source: Alibaba Cloud のCentOSデフォルトユーザーはrootになります。

:information_source: -iオプションでは作成済みのキーペアの秘密鍵を指定してください。

ssh -i xxxxxxx_aliyun_key.pem root@aa.bb.cc.dd

$ ssh -i xxxxxxx_aliyun_key.pem root@aa.bb.cc.dd

The authenticity of host 'aa.bb.cc.dd (aa.bb.cc.dd)' can't be established.
ECDSA key fingerprint is SHA256:JzAvlgdv19a7F17f1eGaRHmPZw2fMsu0kBy54MyaM08.
Are you sure you want to continue connecting (yes/no)? yes

アクセスに成功すると以下のような画面が表示されると思います。

image.png


Docker Install

Rancher自体はDocker上で動くようになっているので先にDockerをインストールします。

公式の手順に沿ってインストールします。

Get Docker CE for CentOS

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

image.png

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

image.png

sudo yum install -y docker-ce docker-ce-cli containerd.io

image.png

sudo systemctl start docker

sudo systemctl status docker

image.png

sudo docker run hello-world

以下のようなメッセージが出ていれば成功です。

Hello from Docker!

This message shows that your installation appears to be working correctly.

image.png

ちなみにこの状態ではDockerは自動起動になっていないので、自動起動したい場合は以下のコマンドを実行します。

sudo systemctl enable docker

確認は以下のコマンドを実行します。

systemctl list-unit-files -t service |grep docker

image.png


Rancher Install

さて、ようやくRancherのインストールです。

SSL証明書をどうするかによってインストールコマンドが分岐します。

Choose an SSL Option and Install Rancher

個人的にはOPTION D-LET'S ENCRYPT CERTIFICATEがオススメですが、

ドメインの準備などが面倒なので今回はOPTION A-DEFAULT SELF-SIGNED CERTIFICATEで実施してみます。

:information_source: Alibaba Cloud でもLet’s Encryptは問題なく利用できます。

下記のコマンドでインストールを実行してます。

docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:latest

以下のような画面が出ればインストール完了です。

image.png

以上、Rancherのインストールは終わりです。簡単ですね😊

事前準備の方が長いという😅

Rancherのコンテナが起動しているかは以下のコマンドで確認できます。

docker ps

image.png

ちゃんと使うにはData Volumeの設定などが必要ですが、今回は検証なので省略します🙇‍♂️


Rancherへのアクセス

ブラウザからインスタンスのパブリックIPにアクセスします。

セキュリティグループの設定で80,443が解放されていればアクセスが成功するはずです。

この画面まで出ていればインストールは成功しています。

初回アクセス時のパスワード設定画面なのでパスワードを設定しContinueを選択します。

:information_source: 左上の部分が「保護されていない通信」なのは自己署名証明書でインストールしたからです。

image.png

image.png

次のような画面が出るのでRancherの管理対象ノードがアクセスできるURLを設定しSave URLを選択します。

今回はパブリックIPを設定しておきます。

:information_source: Rancherと管理対象ノード(Kubernetes)が通信する際にここで設定したURLを使用します。

image.png

この画面まで出ればあとはKubernetesクラスタをRancherから作成したり、作成済みのKubernetesクラスタをRancherに紐づけて管理するだけです。

image.png

というところで、構築編はここまで❗️

設定に関しては別の記事にしたいと思います。


おわりに

どちらかというと Alibaba Cloud ECSの設定手順になってしまいました😅