Kubernetes クラスタの操作性を向上させる

Rancher でできること

RancherはブラウザーのUIを通したグラフィカルなインターフェースを持っており、様々な環境のkubernetesクラスタを管理するとともに、コンテナーの管理、アプリケーションの管理も行うことができます。ここでいうアプリケーションは kubernetes 上で動くものすべてです。

Rancherの機能については、以下のサイトからご確認ください。

Your Enterprise Kubernetes Platform | Rancher Labs https://rancher.com/

ここではRancherの導入から、アプリケーションのデプロイを実施します。 アプリケーションとして、kubernetes クラスタを監視するソフトウェアスタック(Prometheus+Grafana)をkubernetes上で簡単に起動してみます。

Rancher を導入する

dockerをインストールする

Rancherの導入には、Dockerコマンドを利用します。もし、Dockerをインストールしていない場合にはDockerをインストールします。

Rancherに必要なDockerのバージョンは、以下のURLに書いてあります。 https://rancher.com/docs/rancher/v2.x/en/installation/requirements/

  • 1.12.6
  • 1.13.1
  • 17.03.2

となっていますが、18.06.01 でも動いています。今回は、18.06を使います。

インストール方法は、

curl https://releases.rancher.com/install-docker/18.06.sh | sh

でインストールしてください。

Rancherをインストールする

次にRancherをインストールします。

以下のDockerHubのタグでv2.x系の最新のバージョンを確認してください。。

今回は、v2.2.6 をインストールします。

docker run -d --restart=unless-stopped \
-p 80:80 -p 443:443 \
rancher/rancher:v2.2.6

Rancher へログイン

上記のRancherをインストールしたホストのIPアドレスでブラウザーを開くと以下のような画面が表示されます。

../../../../_images/Login.png

パスワードを指定するか、ランダムのパスワードを生成して Continue を押します。

Kubernetes クラスターのインポート

次に、作っておいた Kubernetesクラスターを Rancherから認識できるようにインポートします。 Globalから Add Cluster ボタンを押します。

../../../../_images/Add-Cluster-Dashboard.png

クラスター追加画面が出てきますが、右上の IMPORT ボタンを押します。

../../../../_images/Import-Cluster.png

次に、Cluster Nameを指定して Create ボタンを押します(Memberは自分一人で使う分には追加する必要はありません)。

../../../../_images/Set-ClusterName.png

以下のページで表示されたコマンドを実行します。 kubectlコマンドは事前にインストールし、kubernetesに接続できるよう設定しておいてください。

../../../../_images/Import-command.png
kubectl create clusterrolebinding cluster-admin-binding --clusterrole cluster-admin --user [USER_ACCOUNT]

上記の [USER_ACCOUNT] は上記コマンドを実行するユーザーIDを指定します。

kubectl apply -f https://xxxxxxxxxxxxxx.com/v3/import/XXXXXXXXXXXXXXXXXXXXXXXXX.yaml

上記のコマンドで証明書の問題のエラーが発生する場合は、以下のコマンドを実行して下さい。

curl --insecure -sfL https://xxxxxxxxxxxxxx.com/v3/import/XXXXXXXXXXXXXXXXXXXXXXXXX.yaml | kubectl apply -f -

KubernetesクラスターがRancherにインポートされると以下のようにGlobalのClusterダッシュボードにインポートされたクラスターが表示されます。

../../../../_images/cluster-list.png

アプリケーションをデプロイ

Prometheus+Grafanaのデプロイする

上記、クラスターがインポートされた状態でPrometheus+Grafanaをデプロイしてみましょう。 まず、インポートされたKubernetesクラスターのDefaultネームスペースに切り換えます。

../../../../_images/change-name-default.png

Global を押してドロップダウンしたメニューの Default をクリックします。 ワークロードのダッシュボード画面に切り替わります。

../../../../_images/cluster-default-dashboard.png

この画面の Catalog Apps をクリックします。

../../../../_images/CatalogApp-list.png

カタログリストから 右側の Search 検索ボックスに Prometheus を入力します。

../../../../_images/CatalogApp-Prometheus.png

View Details をクリックします。 様々な設定項目がありますが、Grafana Admin Password だけ任意のパスワード入力します。

../../../../_images/Settings-Prometheus-Grafana.png

デプロイが開始されると以下のような画面になります。

../../../../_images/Deployed-Prometheus.png

Prometheusをクリックします。

../../../../_images/Prometheus-Details.png

上記の Workloads を確認します。

../../../../_images/Workloads-prometheus.png

prometheus-grafana の80/http をクリックします。

../../../../_images/Grafana-Dashboard.png

画面が表示されれば正常にデプロイされています。