ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

JujuでデプロイしたKubernetesにRancher 2を追加する

JujuでデプロイしたKubernetesにRancher 2を追加することができます。 手順は以下の公式ドキュメントにあるようにYAMLを用意してkubectlコマンドを使ってkubectl applyするだけです。

kubernetes.io

注目はYAMLファイルのここの部分です。

    spec:
      containers:
      - image: rancher/server:preview

Docker Hubのrancher/serverはRancher 1.x Server Containerのイメージです。例外として最新のpreviewタグは、v2.0.0のイメージを拾うことができます。ただ、リンク先に書かれているようにRancher 2.xを使いたければ、rancher/rancherの方を使ってとあります。

Docker Imageをpullして比較してみました。rancher/server:previewrancher/rancher:v2.0.0は同じイメージIDでした。

~$ docker images
REPOSITORY                     TAG                 IMAGE ID
rancher/rancher-agent      v2.0.8              69ff78f781ee
rancher/rancher                 v2.0.8              817b51fbc1fc
rancher/rancher-agent      v2.0.0              8cfec7659f1d
rancher/rancher                 v2.0.0              3141e5c66ee8
rancher/server                   preview           3141e5c66ee8

したがって、YAMLのさっきの箇所は次のように指定しても良いということになります。

    spec:
      containers:
      - image: rancher/rancher:v2.0.0

Rancher 2.0をちょっと触ってみて

このバージョンのデプロイは手元の環境でうまくいくのを確認しています。また、2.0.x系は2.0.8が最終バージョンですので、v2.0.8を指定してデプロイしてみました。これもうまくいくのを確認しています。

私の利用するKubernetes環境はRook.ioでCephの永続ストレージを使えるように設定してます。デプロイしたRancher 2.0.8でRookの永続ストレージを使い、Rancher 2のアプリケーションカタログを使ってWordPressとかPrometheus + Grafanaのデプロイができたことを確認しています。

f:id:ytooyama:20181026001441j:plain

Rancher 2からはKubernetes helmを使ってアプリケーションをデプロイするようになりましたが、ノードに別途helmをインストールしたり、暗黙の要件(Type:LoadBalancerが必要だったり、永続ストレージが必要だったり...みたいな要件)にはまったりせず、Rancher 2でアプリケーションを展開できて便利だなと思いました。

PrometheusなんかはデプロイしたらPrometheusの設定やGrafanaのDashboardの登録など、ある程度設定された状態で展開されるところが「おおっ!?」と思いました。ちなみにこれまではPrometheusなどはJujuでデプロイしていました。永続ストレージを割り当てればコンテナー内のストレージがログでパンクしていつの間にかPrometheusが動いていないみたいなこともないでしょうし、これからはKubernetes上で動かしてもいいのかななんて思いました。

次の目標はより新しいStableのRancher 2.1.xを使うことです。うまくいったらまたブログで報告したいと思います。