仮想化通信

日本仮想化技術株式会社の公式エンジニアブログ

CoreOSでRancherを動かし、CoreOSベースでRancher Kubernetesクラスターをつくってみた

タイトルが長いですが、CoreOSでRancherを動かし、CoreOSベースでRancher Kubernetesクラスターをつくってみました。 今回の構成は次のとおりです。

詳細は述べられないのですが、OpenStackベースでKubernetesを動かす必要があって、その予行演習を兼ねています。クラスターを作るだけであればもう少し低スペックなフレーバーを定義しても動くわけですが、アプリケーションをいくつか動かそうとするとそれ相応のフレーバーを定義しないと駄目なことがなんとなくわかったので収穫でした。

せっかく色々動かしたので、情報として共有したいと思います。

Rancher

同じネットワークにアクセスできるKVM VMで動かします。 CoreOS Stableをインストールして、Dockerサービスを使えるようにしておきます。

Dockerの事前準備が終わったら、次を実行するだけです。簡単ですね。

# docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:stable

Node

同じネットワークにアクセスできるOpenStackのインスタンスで動かします。 CoreOS Stableのイメージを使ってインスタンスを起動して、Dockerサービスを使えるようにしておきます。

Flating IPアドレスを割り当てておきます。

f:id:virtualtech:20191128195543p:plain
インスタンスとスペック

ちなみにOpenStackはCanonicalのJujuとMAASを使って構築したものを使っています。各インスタンスにはCephのStorageを /dev/sda に提供しています。

Nodeのセキュリティグループ

OpenStackにはdefaultというセキュリティグループがデフォルトで存在しますが、最終的にRancherでアプリケーションを実行するときに使うポートもいくつか開けないといけないので「Service」というセキュリティグループを作りました。インスタンスは「default」と「Service」のセキュリティグループを使って作成することにします。

f:id:virtualtech:20191128200143p:plain
Serverというセキュリティグループを作成

ポートは以下を設定しました。

  • 6443(TCP)
  • 80(TCP)
  • 443(TCP)
  • 30000 - 32767(ノードポート用。TCP/UDP)

CoreOSのイメージ

昨日Fedora CoreOSについて書いたので、本当はFedora CoreOSでやりたかったのですが、現状OpenStackで上手く動かすことができなかったためにCoreOS Container Linuxを使いました。イメージはドキュメントにあるような感じでStableの最新イメージをダウンロードして、OpenStack Glanceに登録しました。ちなみにインスタンス起動時はIgnition Configなどは使わず、デフォルト設定のままインスタンスを起動しています。

coreos.com

セットアップ

あとの流れは以前の記事と同様です。今回はRancher 2.3.3をデプロイしました。Rancher 2にOpenStackインスタンスノードを登録して、etcdとコントロールプレーン、Workerを画面に表示されているdocker runコマンドをパブリックアドレスとプライベートアドレスを指定して、それぞれにデプロイします。

tech.virtualtech.jp

クラスターを登録できたら、あとはRancher 2でアプリをバンバン動かすだけです。

f:id:virtualtech:20191128202001p:plain

ちなみにCLIもインストールしておくと非常に便利です。Rancher2の右下のあたりから、対応するOSのRancher CLIをダウンロードできます。

f:id:virtualtech:20191128202047p:plain
CLIによる操作