[Docker] Rancher/RancherOS を二日間さわりまくって発生した課題 [Rancher]

もういい加減いい年なのに、朝まで設定と格闘していたので、今日はまともに活動できる気がしません、しょっさんです。


眠るにゃんこ様

それと、こないだも書いたとおりお酒飲むとまともに寝られなくなってしまうので、今週は動けなくなった日が数度あって、ほんとしんどいです。池袋のカフェで寝落ちしそうな人がいたら、きっとしょっさんです。

Rancher で気軽に遊んでいたら、ドハマリした件

さて Rancher です。Docker をカンタンに使うための OSと、複数ホストを一元管理して docker-compose させてくれる、とても初心者に優しいツール群です。しばらく忙しくて放置してたんですが、そろそろ古いサーバを一掃したいので、もろもろを Rancher 上の Dockerコンテナに移設したく、Wordpress のサーバを作りながら色々と学んできました、この二日間。発展途上感もありますし、いくらか課題が出てきても仕方ないのですが、結構やっかいだったり、面倒だったり、そもそも役に立たない状態だったりするものがあるので、諸々の課題をまとめておきます。解決策があるものは載せてますが、ほとんどが改修待ちや、これから試してみようとしている部分です。

さて、そんな課題諸々は以下のとおりですが、個人的に技術力が足りていないものもあるので、そのへんはお勉強しながら進めていきます。

  1. RancherOS 起動時に IPアドレスが割り振られない時がある
  2. 複数ホストで Load Balancer を動かして冗長化するときの方法がわからない
  3. Rancher-NFS がしぬほど遅い

1. RancherOS 起動時に IPアドレスが割り振られない時がある

現象としては

  1. RancherOS v1.0.1 に更新 (v0.7あたりから)
  2. eth0, eth1, eth2 と複数NIC構成にしている
  3. 起動してくると、eth0 だけ正しくIPアドレスが採番されない時がある

です。調べてみたり、Slack で質問してみたりしてたどり着いたのが Network configuration broken after update 0.8.1 -> 0.9.0 です。どうも dhcpに不満があるようです。

具体的に起動時の状況を見ていると、

  • eth0 は dhcpパケット流れてるから、IP自動的に採番したよ!
  • なんや、固定IP設定するのか、再設定したで!
  • なんか知らんが、default GW に疎通できないから、eth0 設定棄却するわ

という恐ろしい流れ。”dhcp: false” にしてるのに。

仕方ないので、今は起動させて IPがちゃんと振られていなかったら「 sudo ip addr add〜 」「 sudo route add default gw〜 」を手動でうつ健気な私です。ツライ。

2. 複数ホストで Load Balancer を動かして冗長化するときの方法がわからない

これは多分、自分の技術力が不足しているだけです。

HAProxy が驚くほどに多機能・軽快なので、設定完了した瞬間に、squid からとっとと移行しました。おかげさまで、これだけ本番化してます。

しかしながら、冗長構成の作り方や、それへアクセスしていくためのベストプラクティスが謎なので、ひとまず全ホストで HAProxy 動かして、どこにアクセスしても良いようにしてます。DNSで全アドレス網羅してるだけの単純設定ですが、どうするのが良いのか誰か教えて欲しいの心。この方法だと、該当のホストが落ちるとアクセスできなくなってしまう。

今のとこ落としたりとかする予定ないので、そのまま後回しにしています。

3. Rancher-NFS がしぬほど遅い

MySQLの /var/lib/mysql を Rancher-NFS を使った Volume にしても、遅いは遅いにしても、まぁしゃぁないくらいで動いていたので気にしていなかったのですが。

WordPress において、 /var/www/html 配下を Rancher-NFS でマウントさせて使うと、死ぬほど遅いです。NFSv4限定で idmapd が絡んでいる所為か、 wp-config.php のオーナーとグループが restart の度に「 nobody:nogroup 」になってしまう問題もあるので、なお厄介です。

今は Gluster-FS も提供されていないので、他にディレクトリ共有させるには、AWS EBS などを利用せざるを得ない始末。オンプレなのに、クラウドの共有ディレクトリはさらに遅そうなので、このへんは却下ですが、さてどうしようかと。

いま現時点では、次の方法をもくろんでいます。

  1. 各ホストに、特定の共有ディレクトリを準備して、そこを Volume として利用させる
  2. ディスク同期の方法を考える

  3. も結局 NFS 使うんだけど、コンテナのオーバーヘッドが全部なくなるので、多少は早くなると信じてる。あとは、超速いNASでも作るか…。

とにかく遅いので、 WordPress のルートディレクトリ配下を Rancher-NFS にするのはおすすめしないです。HAProxy や Apache、MySQLと全部ひとつひとつ試していった結果です。ほんと驚くくらい遅いです。うちのNFSが遅いってのもありますが、それにしても遅い。

ねむい

ほぼ 2日間、Rancher さわって、結局できた結果は次の二つだけとか、ちょっと情けない話ではありますが、ほとんどが検証作業に費やされてしまったり、遅い環境のままテーマ探したり、プラグイン入れたりと作業をしたことでムダに時間をかけすぎました。

  1. HAProxy による各Webサーバへの割り振りと負荷分散 (Rancher外のWebサーバやアプリなども配下に入れられるの素敵)
  2. WordPress を動かす方法がわかった

まぁでも、HAProxy 簡単に使えるうえ、軽いし、多機能なので感慨深いです。squid や nginx で半泣きで Reverse Proxyを運用している時代は終わりましたね。やったね( ´ー`)y-~~

“[Docker] Rancher/RancherOS を二日間さわりまくって発生した課題 [Rancher]” への2件の返信

  1. 「HAProxy 簡単に使えるうえ、軽いし、多機能なので感慨深いです。squid や nginx で半泣きで Reverse Proxyを運用している時代は終わりました」

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です