Rancher🐮でKubernetes (ACK) を管理しよう❗️ - 検証編 -

こんにちは。
ソリューションアーキテクト松田(@MatYoshr)です。

昨年、多くのパブリッククラウドにてKubernetesサービスが正式に提供開始されたこともあり、Kubernetesというキーワードを聞くことがかなり多くなってきたように感じます🤔

下記のGoogle Trendsのグラフを見てもKubernetesの着実な盛り上がりが感じられますね😁
こうしてみると結構日本とアメリカのグラフが連動していて面白いです。
ちなみに日本のグラフだけガクッと下がっている部分はGWですね🎌

そんな、Kubernetesですが、もちろんAlibaba Cloud でもサービスとして提供しています😁
Alibaba Cloud Container Service for Kubernetes というサービスで記事のタイトルにもあるのですがACKと略します。

今回の記事ではAlibaba Cloud の Kubernetes サービスにも対応している「Rancher」というソフトウェアをご紹介したいと思います😆 ℹ️今回は動作検証が目的の内容になります。

Container Service for Kubernetesの概要はコチラのプロダクトページをご覧いただければと思います。

また、Container Service for Kubernetes に関する過去のテックブログもご覧いただければと思います。
こちらに関しては1年前からの更新情報などもあるので、アップデート記事を近いうちに作成したいと思います😎

www.sbcloud.co.jp

Rancherとは

Rancherとはオープンソースのコンテナ管理プラットフォームです。
Kubernetesクラスタの構築、運用やアプリケーション展開機能を持っています。
特に大きなポイントは「マルチクラウド」「マルチクラスタ」を1つのRancherプラットフォームから管理することができる点です。

https://rancher.com/imgs/products/rancher/multi-cluster-management/screen2-thumbnail.png 参照元:Products - Rancher / Multi-Cluster management

Rancherに関する詳しい内容は下記のThink IT連載などをご覧頂ければと思います。

thinkit.co.jp

3月末にリリースされた Rancher 2.2 からACKにも対応致しましたので実際に検証していきたいと思います。
下記は昨年RancherがAlibabaを含む中国発クラウドのKubernetesサービスへのサポートを発表した記事になります。

rancher.com

Rancher on Alibaba Cloud ECS

Rancherの構築手順に関してはQiitaで簡単な構築手順の記事を書いていますので、こちらをご覧頂ければと思います。

qiita.com

Rancher への Kubernets の登録

RancherでKubernetes環境を管理するには2通りの方法があります。
既存のKubernetsクラスターをRancher管理下に置く
新規のKubernetsクラスターをRancherから作成する

Alibaba Cloud Container Service for Kubernetes はどちらの方法にも対応していますので、それぞれ見ていきたいと思います。

Import Cluster

構築済みのRancher環境へアクセスします。

f:id:sbc_y_matsuda:20190604205423p:plain:w850

Rancher上に管理対象が存在しない場合この様な画面になります。
クラスターを追加を選択して既存のContainer Service for Kubernetes 環境を設定したいと思います。

f:id:sbc_y_matsuda:20190604205052p:plain:w850

既存のクラスターをインポートを選択クラスター名を入力し「作成」を選択します。

f:id:sbc_y_matsuda:20190605152405p:plain:w850

既存のKubernetesにRancherと通信するための設定を実施します。
以下のコマンドをコピーし、kubectlが使える端末から対象のKubernetesに実行します。
コマンド実行後に「完了」を選択します。

f:id:sbc_y_matsuda:20190605153013p:plain:w850

ℹ️以下のコマンドのURL部分は環境によって異なります。

kubectl apply -f https://xxx.yyy.zzz/v3/import/1234567894bw9qv8z7ml2xdv2p9cg899hp8s4llk.yaml

この様なメッセージが表示されると思います。

f:id:sbc_y_matsuda:20190605164624p:plain:w850

コマンドの成功後にACKのコンソール画面を確認しに行くと「名前空間」にcattle-systemが追加されています。

f:id:sbc_y_matsuda:20190605165202p:plain:w850

Rancherの画面に戻るとこの様な画面が表示される様になります。
先程のコマンドが成功していれば状態、プロバイダー、ノード数などの情報が取得できていると思います。
ℹ️データが取得できる様になるまで多少の時間が必要です。

f:id:sbc_y_matsuda:20190605165702p:plain:w850

クラスター名の部分(今回だとalibabacloud-cluster)を選択するとクラスターの詳細が表示されます。
ACKで作ったKubernetesクラスターはバージョンにaliyunなどの文字列が入っている様です。
ℹ️バージョンによって表記は変わる可能性があります。

f:id:sbc_y_matsuda:20190605170211p:plain:w850

ノードの情報もこの様に取得されます。

f:id:sbc_y_matsuda:20190605171836p:plain:w850

alibabacloud-cluster > Default を選択します。

f:id:sbc_y_matsuda:20190606014341p:plain:w850

表示される画面のワークロードにリソースの情報が表示されます。
Deploymentの名称やイメージ、レプリカ数などが表示されています。

f:id:sbc_y_matsuda:20190606015129p:plain:w850

Deploymentを選択(testappを選択)すると詳細画面が表示されます。
ここでスケールの項目の+ボタンを押して2から3にするとPodのスケールが実行されます。

f:id:sbc_y_matsuda:20190606015621p:plain:w850

少々待つと動的にPodの数が増えました。

f:id:sbc_y_matsuda:20190606020551p:plain:w850

Alibaba Cloud の管理コンソールから見たときも、ちゃんと1個増えている様子が確認できます。

f:id:sbc_y_matsuda:20190606021148p:plain:w850

Create Cluster

Rancher v2.2 はAlibaba Cloudに対応しているのでRancherからACKを作成することが出来ます。
ただし、AWSやAzure などと違いデフォルトではAlibaba Cloud対応が無効化されていますので、有効化を行ってから作成を行います。

クラスターの画面などからツール > Driversを選択します。

f:id:sbc_y_matsuda:20190606021945p:plain:w850

以下の様な画面が表示されます。
Alibaba ACKにチェックを入れて「アクティブ化」を選択します。

f:id:sbc_y_matsuda:20190606023013p:plain:w850

しばらくしてAlibaba ACKが「Active」に変われば成功です。

f:id:sbc_y_matsuda:20190606023243p:plain:w850

クラスター画面に戻り「クラスターを追加」を選択します。

f:id:sbc_y_matsuda:20190606023606p:plain:w850

In a hosted Kubernetes providerAlibaba ACKが追加されています😁

f:id:sbc_y_matsuda:20190606024109p:plain:w850

Alibaba ACKを選択しAccount Accessで必要な情報(Region,Access Key,Secret Key)を入力します。
入力後に「Next: Configure Cluster」を選択します。

f:id:sbc_y_matsuda:20190606024645p:plain:w850

Cluster Configurationで必要な情報を入力し「Next: Configure Master Node」を選択します。

f:id:sbc_y_matsuda:20190606024912p:plain:w850

画面を省略しますが、Master Node、Worker Nodeの設定を行い「作成」を選択するとACK環境の作成が開始されます。

f:id:sbc_y_matsuda:20190606025826p:plain:w850

作成が始まるとRancherの画面では以下の様にProvisioningの表記でクラスターが表示されます。
プロバイダーがAlibaba ACKとなっています。 f:id:sbc_y_matsuda:20190606030245p:plain:w850

Alibaba Cloud の管理コンソール上でもクラスター構築中なのがわかります。
15分ほど初期構築に時間がかかりますので終わるのを待ちます。

f:id:sbc_y_matsuda:20190606030435p:plain:w850

しばらくするとActiveに変わってKubernetesが利用可能になります🎉
RancherがちゃんとACKに対応している事が確認できました。

f:id:sbc_y_matsuda:20190606032946p:plain:w850

おわりに

Rancher というツールがAlibaba Cloud のKubernetesサービスに対応している事がご理解頂けたかと思います。 最近はAlibaba Cloudに対応しているツールも増えてきましたので、色々活用してみてください😁

ただ、Alibaba Cloud のKubernetes サービスは他のKubernetesサービスに比べると、管理コンソールにGUIのダッシュボードがあったりHelmが最初から使えたりと、実はRancherを入れなくても使いやすく管理しやすい構成になっていると個人的には思います🤔

しかし、マルチクラウドやハイブリッドでKubernetesを管理したいという様な要望がある際にはRancherを使って一元管理をするシナリオはありそうですね。

今回は簡単な動作検証でしたがRancheには色々と便利な機能を持っていますのでその辺とACKを組み合わせなども紹介していきたいと思います。

おまけ

最初の方に日米のKubernetesのGoogle Trendsを出しましたが・・・
実は中国を対象に入れるとこんなグラフになります😳
人口のせいなのか中国での検索数が多すぎて比較にならない・・・
とは言え中国でのKubernetesの人気振りがここから見える様な気がしますね😄