Help us understand the problem. What is going on with this article?

Rancherって何ができるの?

Rancherって何ができるの?

kubernetes ubernetes rancher istio helm grafana

Rancherってなんか色々できそうだけど、ちょっとだけイメージが湧きづらいですよね。
ではRancherの実際の画面を見ながら、なんとなくイメージをつかんでみましょう!

Rancherってなに?

Kubernetes(K8s)を使いやすくするための、OSSのソフトウエアです!

Rancherでできることは多いですが、大きな特徴はGUIによる視覚化が徹底されている部分であると言えます!

そのうえで、以下の3つの特長を抑えておけば十分です!

  1. 異なる環境のK8sクラスタの一元管理
  2. K8sクラスタへのアプリの導入
  3. Istio(サービスメッシュ)との連携

これらを視覚的に扱うことができるOSSであるという部分が、Rancherのアイデンティティではないかなと思います。

一つずつ見ていきましょう!

1. 異なる環境のK8sクラスタの一元管理

こちらがRancherの画面です。
image.png

ログインするとまずはこの画面が開きます。

Rancherには3種類のUIがあります。
・Grobal UI
・Cluster UI
・Project UI

Rancherには3つのUIがあって、それらを意識して操作することが理解の近道になります。

上記で表示されているのはGrobal UIという一番上の階層のUIです。

ここでは管理するクラスタを追加したり、Rancher全体の設定を行ったりすることができます。

試しにローカルにあるK8sクラスタをRancherの管理下に入れてみましょう。

上記の画面で「クラスターを追加」を選択して、Add Cluster画面から「Import an existing cluster」をクリックします。
image.png

クラスタにアクセスできるユーザロールや、ラベル、アノテーションなどが指定できますが、ここではクラスター名のみ指定して、「作成」をクリックします。
image.png

ここに表示されたコマンドを、追加したい既存のK8sクラスタで実行するだけで、Rancherの管理下に入ります。
image.png
今回は、Rancherデフォルトの自己証明書なので下の方のコマンドを実行します。

# curl --insecure -sfL https://lb.example.com/v3/import/9t549tjt24lflc48nj6cst8v4649958blj6ndffr4c2ndw5sspqrgm.yaml | kubectl apply -f -
Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
clusterrole.rbac.authorization.k8s.io/proxy-clusterrole-kubeapiserver configured
Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
clusterrolebinding.rbac.authorization.k8s.io/proxy-role-binding-kubernetes-master configured
namespace/cattle-system created
serviceaccount/cattle created
clusterrolebinding.rbac.authorization.k8s.io/cattle-admin-binding created
secret/cattle-credentials-62b1ec5 created
clusterrole.rbac.authorization.k8s.io/cattle-admin created
deployment.apps/cattle-cluster-agent created
daemonset.apps/cattle-node-agent created
#

するとRancherのGrobal UIに「guest」という名前のクラスタが追加されました。
image.png
今回は既存のK8sクラスタを追加しましたが、AWSなどのクラウドのプロバイダを利用して、K8sクラスタの作成も画面から実行することができます。

ここで任意のクラスタをクリックすることでCluster UIが開きます。
image.png

ここからノード毎の情報が見られたり、クラスタ操作できるメンバの管理や、後述します[Istio]などの管理・監視ツールの有効化ができます。

Cluster UIの「プロジェクト/名前空間」タブを開きます。
image.png
ここから任意のプロジェクトをクリックすることで「Project UI」を開くことが出来ます。

Rancherでいうプロジェクトとは、K8sのnamespaceをまとめてグループのように扱う単位の事です。
ここではK8sのシステムに関わるnamespaceが「system」プロジェクトに属しています。
ここでは「system」プロジェクトをクリックしてProject UIを開いてみます。
image.png
Project UIではプロジェクト内のリソースやポッドのログなど、細かい部分まで参照することが出来ます。

リソース→ワークロードを選択することで、ポッドやサービスなどの情報が参照できます。
image.png
ぱっと見、視覚的に非常に見やすくていいですね。
ここからワークロートのYAMLをダウンロードしたり、YAMLをインポートしてリソースを追加したりすることができます。

ユーザにはGlobalユーザ、Clusterユーザ、Projectユーザがあり、それぞれの範囲で権限を割り当てることが出来ます。
その辺をしっかり設計すればマルチクラスタの管理を効率的に行えると思います。

2.K8sクラスタへのアプリの導入

K8sクラスタへのアプリの導入はHelm Chartのカタログを利用して比較的簡単に行うことが出来ます。
アプリを導入したいプロジェクトのProject UIの[Apps]タブを開きます。
image.png
Apps画面が開いたら右上の「起動」をクリックします。
image.png
導入されているカタログ画面が開きます。

一覧から「wordpress」をデプロイしてみましょう!
image.png
「wordpress」をクリックするとこんな画面が開きます。
ここで、各種パスワードを設定して、画面下の「起動」をクリックします。
image.png

少し待つと「wordpress」がActiveになります。
image.png
「80/http」をクリックすると、wordpressの画面が開きます。
image.png
HelmChartでのアプリケーションのデプロイは、設定値などの変更のためにvalues.ymlなどを読み解いてカスタマイズする必要がありましたが、
Rancherでは、UIで設定するだけで、自動で設定ファイルを最適化してくれるため、非常に手間が少ないです。

カタログをRancherに読み込ませることで、自作のアプリももちろんデプロイ可能です。
ただし、こちらはカスタムカタログを作成するのが手間が多い印象なので、実装するには覚悟が必要かと思います。

3. Istio(サービスメッシュ)との連携

Rancherv2.3から Istioの利用が実装されました。

こちらは、Cluster UIからIstioを有効化するだけでIstioだけでなく、Jaeger, Kiali, Prometheus, Grafanaが同時に利用できるようになるというものです。
早速有効にしてみましょう。
まずはIstioを利用したいクラスタのCluster UIを開きます。
image.png

ツールから「Istio」をクリックすると、
image.png
こんな場面が開きます。

Istioは有効じゃないよ!って言ってますね。

ここではGroup Accessのラジオボタンを上に変更して、「有効」をクリックします。
image.png
 
10分ほど待つと、
image.png
Istioが有効になりました!
ここから各UIの右側のロゴをクリックすることで、UIにダイレクトにアクセスすることができます。
■ Kiali
image.png

■Jaeger
image.png

■Grafana
image.png

■Prometheus
image.png

これで、アプリケーションにサイドカーを同行させてのトレーシングやトラフィックのコントロールが出来るようになりました!
カタログでのアプリケーションのデプロイと組み合わせると、いろいろな検証ができて、これらの概要をつかむための統合環境として優秀だと思います。

おわりに

GUIで単純な操作でK8sをコントロールできるRancherであるため、単純にやろうとするといろいろ簡単ですが、
Rancher自体でできることが非常に多く、画面も多様なため、細かく設定しようとするといきなり難易度が高くなる印象です。

サービスメッシュ、メトリクスの概要をつかむためには非常に有用だと思いますので、その辺を学習したい方は、ぜひ利用してみてください!

以下のリンクよりWindows10 + Vagrant + VirtualBOXでのRancherクラスタの構築手順を紹介しています!
是非ともご覧くださいませ。
HAなRancherをVirtualBoxで構築しよう

参考

Rancher公式ドキュメント https://rancher.com/docs/

itdo
サーバ、ネットワークやクラウドなどITインフラの設計構築を行うインテグレータです。OSS製品全般、Ansibleなどの自動化、認証システムを得意としています。
http://itdo.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした