[Operation][Virtualization][Network][Kubernetes] 週末やったこと

今週末は色々やりました

土曜日から日曜にかけて、我が家の嫁様が数十人規模のキャンプへ出掛けたことも有り、おひとりさま週末を迎えることになりまして、とはいえ最近体調があまりよろしくなく、車でピヤっと出かけるわけにも行かず、せっかくなんで自宅環境を少々いじりました。

やったのは以下のとおりです。

  • CephのGUI管理環境を作る
  • ブログDBのコンテナ化&Ceph化
  • ココ最近サボってたHinemos Agentのインストール(Cephノード+追加Kubernetesワーカーノード)
  • 部屋間L2スイッチのリプレイス

CephのGUI管理環境を作る

そりゃぁもう色々調べました。その中ででてきたのはCalamari、OpenAtticだったのですが、いずれも実装が難しく、結局は既存Ceph環境を管理させることができませんでした。いきあたりばったりな行動も要因ですが、まぁやっぱりなかなか情報が少ない。まぁ、試してみたんですが

  • 英語マニュアルが正確に読めず、おそらくどっかでコマンドをミスっている
  • なんとなく進めていくに従い、歪が進んでいき、最終的に認証情報にずれが出た
  • 1号機とそれ以外とでスプリットブレーンに近似した症状が起き、コンテナが領域を参照できなくなった(Provisioningはできる)
  • 結果的にMasotodonのPostgreSQLが壊滅し、作り直す羽目に
  • 状態としては、1日前の状態に切り戻る。よかった、論理バックアップとっといて。

いずれのプロダクトも微妙に年代が古く、これなにかあるなぁ・・・・と思って調べてみたら、なんとCeph自身にLuminousからdashboard機能が付いてるじゃないっすか!以下コマンドをadminノードで実行するだけ。悲しすぎる。

# ceph mgr module enable dashboard

これを実行した後、どっかのCephノードに対して http://<ceph-mgrノードのIP>:7000 にアクセスすればGUIが拝めます。そう、これが欲しかったの。毎度コマンド実行するの辛かったの。

もともとはCephのバージョンは10.x(Jewel)だったんですが、これらは12.x(Luminous)へ引き上げてます。その際もいろいろな対応がありましたが・・・

論理バックアップの重要性を痛感した週末ともなりました。

ブログDBのコンテナ化

今まで何度と挑んでは失敗してたブログDBのコンテナ化なんですが、結論として「単騎で作ろう」となりました。これまでGalera Clusterを組もうとしたりいろいろ躍起になってましたが、そろそろいい加減馬鹿らしくなってきたこと、そもそもDeploymentsetやReplicationControllerがあればそれなりの可用性が担保できることがわかってるのだからそれでいいじゃん的な。
そこで今回は、以下のサイトを参考にしてコンテナを組みました。なお、データ領域はCephに配置するようにしています。

https://kubernetes.io/docs/tasks/run-application/run-single-instance-stateful-application/

で、データの移行ですが

# mysqldump -p --single-transaction worddb > worddb_20180610c.sql

これでブログDBのデータを抽出します。

次に、事前に作成したDB、ユーザ、パスワード提議を実施し、ユーザとDBの紐付けを行った後、

# mysql -u words -h <Kubernetes node's IP> -P <NodePort> -D worddb -p < worddb_20180610c.sql

を実行することで対応しました。

ここで得られた教訓としては「システムDB(ここではmysql)はインポートしないほうが良さげ」ということでした。どうもコンテナ側のDB設定がコンテナで動くことを前提としてる故か、all-backupしたデータを素直にインポートさせてしまうと、mysqldが落ちるようです。

なので、個別データベースバックアップ・リストアと言う手法をとったのですが、どうやらそうしたほうが良さそうです。

Hinemos Agentの仕込み

作業自体はAnsible AWXですでにタスクを作ってるので、新ノードにこれをばらまくだけの簡単なお仕事です。
この間にCephノード4台、Kubernetesノード1台の計5台が増えており、リソースもだいぶ枯渇してきました。いろいろやりくりしながら組んでいるのですが、なかなかそろそろ厳しくなり、特に運用端末が安定して動かなくなってきました。
うーん、ちょっと困ってます。

L2スイッチのリプレイス

更改箇所はこちらです。

やること自体はそれほど難しいことでもなく、単純にVLAN切ってポート設定して、必要なケーブルを切り替えていくだけです。ノンインテリHUBだとどうしてもNGNとクライアントセグメントの接続を一緒くたにすると、IPv6周りで不具合が出る(そらそうだ)わけで、そのために2つのスイッチに分割してましたが、やっとこさVLAN分割で一つにまとめられました。おかげさまでこれ(↓)が

これ(↓)に。

やっぱ然るべき所でしかるべきスイッチを動かしたほうが色々と性能面でも有利なんだろうと思っています。
今までのHUBではできなかった以下のことができるようになりました。

  • コアスイッチ間のLACPが可能になった
  • タグVLANが通せるようになり、スイッチの監視が可能になった⇒統計が取れる!

あと、これで使ってた5ポートスイッチを仕事に生かせます。作業用とかで、時々仕事で使うことがあるので、その際にインテリスイッチを担いでいくわけにはいきませんで・・・

もう少し体力がほしい。

執筆してるこの時点で、実は結構フラフラです。さっきまで作業してたつっても、ふかふかのマッサージソファーに座って足をだらーんと投げ出してジャズ聞きながら優雅に過ごしてたはずなのに、どうしてここまでフラフラになるのだか・・・イマイチ理解ができませんで。

ココ最近どうも易疲労性というのですが、疲れがひどく、夕方頃にお陀仏になるケースが結構あります。朝は早めに家を出て、散歩しながら会社へ通勤するほどの体力があるんですが、何故か夕方には自力で帰宅できないほど体力不足に。

というわけで、色々病院とも相談しながらあれこれやりくりしてる毎日です。でも、こういうことにかけては、魂削ってでもやりたがりなんですねー、私。

ちなみにQoL上げるためにマッサージソファーを少しだけパワーアップしました。

椅子に設置して、マッサージチェアになるというやつです。ハードオフで4000円台で売ってあったので買いました。肩甲骨の内側の筋肉が凝りがちだったので、そこがほぐされたのは嬉しいのですが・・・・どうも安物だったせいか、モミ玉が固く、それが原因で背中の筋肉が炎症を起こしたみたいです・・・というわけで、仕様一日目にして当面自粛・・・・とほほな気分です。
(とはいえ、もともとからの腰揉み機能は優しいので、これは活用できてます)