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


はじめに

Rancher 2.2 より Alibaba Cloud Container Service for Kubernetes へ対応したので遅ればせながら検証してみました。
今回は環境構築までの記事です。

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を選択します。

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

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

価格モデルは従量課金リージョンは東京を選択してください。
今回はSmallで十分なので1vCPU,4GBメモリのインスタンスを選択します。

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

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

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

セキュリティグループは事前に作成して置いてください。セキュリティグループの作成から別タブで作成ページにも飛べます。
検証目的のためパブリックIPの割り当てを行いますが、実環境では慎重にご検討ください。

ログイン認証にキーペアを選択し使用するキーペアを選択します。キーペアは事前に作成しておいてください。
任意のインスタンス名やホスト名を設定してください。

インスタンス名は管理コンソール上での識別用でホストは仮想サーバーのHostnameに設定されるものになります。
今回は使いませんが必要に応じて削除保護cloud-initを設定します。

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

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

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

Alibaba Cloud ECSへのsshアクセス

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

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

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

Tera Termなどのターミナルソフトかコマンドラインからアクセスします。
Alibaba Cloud のCentOSデフォルトユーザーはrootになります。
-iオプションでは作成済みのキーペアの秘密鍵を指定してください。

ssh -i xxxxxxx_aliyun_key.pem [email protected]

$ ssh -i xxxxxxx_aliyun_key.pem [email protected]

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   

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

Docker Install

Rancher自体はDocker上で動くようになっているので先にDockerをインストールします。
公式の手順に沿ってインストールします。
Get Docker CE for CentOS

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

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

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

sudo systemctl start docker
sudo systemctl status docker

sudo docker run hello-world

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

Hello from Docker!
This message shows that your installation appears to be working correctly.

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

確認は以下のコマンドを実行します。
systemctl list-unit-files -t service |grep docker

Rancher Install

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

Choose an SSL Option and Install Rancher

個人的にはOPTION D-LET'S ENCRYPT CERTIFICATEがオススメですが、
ドメインの準備などが面倒なので今回はOPTION A-DEFAULT SELF-SIGNED CERTIFICATEで実施してみます。

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

下記のコマンドでインストールを実行してます。
docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:latest

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

以上、Rancherのインストールは終わりです。簡単ですね😊
事前準備の方が長いという😅

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

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

Rancherへのアクセス

ブラウザからインスタンスのパブリックIPにアクセスします。
セキュリティグループの設定で80,443が解放されていればアクセスが成功するはずです。

この画面まで出ていればインストールは成功しています。
初回アクセス時のパスワード設定画面なのでパスワードを設定しContinueを選択します。
左上の部分が「保護されていない通信」なのは自己署名証明書でインストールしたからです。

次のような画面が出るのでRancherの管理対象ノードがアクセスできるURLを設定しSave URLを選択します。
今回はパブリックIPを設定しておきます。
Rancherと管理対象ノード(Kubernetes)が通信する際にここで設定したURLを使用します。

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

というところで、構築編はここまで❗️
設定に関しては別の記事にしたいと思います。

おわりに

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