JujuでデプロイしたKubernetesにRancher 2を追加することができます。 手順は以下の公式ドキュメントにあるようにYAMLを用意してkubectlコマンドを使ってkubectl applyするだけです。
注目は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:preview
とrancher/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のデプロイができたことを確認しています。
Rancher 2からはKubernetes helmを使ってアプリケーションをデプロイするようになりましたが、ノードに別途helmをインストールしたり、暗黙の要件(Type:LoadBalancerが必要だったり、永続ストレージが必要だったり...みたいな要件)にはまったりせず、Rancher 2でアプリケーションを展開できて便利だなと思いました。
PrometheusなんかはデプロイしたらPrometheusの設定やGrafanaのDashboardの登録など、ある程度設定された状態で展開されるところが「おおっ!?」と思いました。ちなみにこれまではPrometheusなどはJujuでデプロイしていました。永続ストレージを割り当てればコンテナー内のストレージがログでパンクしていつの間にかPrometheusが動いていないみたいなこともないでしょうし、これからはKubernetes上で動かしてもいいのかななんて思いました。
次の目標はより新しいStableのRancher 2.1.xを使うことです。うまくいったらまたブログで報告したいと思います。