ipv6ではまる

少し前から自宅のPCでYouTubeが再生できなくなってしまい、色々調べてみたら「xxxx.googlevideo.com 」からのストリーミングがIPv6のみ不正パケットとしてルーターが破棄してしまっていたことが判明。FirewallでInvalidでもforwardをacceptするようにしてもダメだったので、本当にパケットが壊れているのではなくRouterOSの不具合かなにかでQUICかStream系のパケットを正しくルーティングできていなさげ。
解決策はすっげー乱暴だけど「xxxx.googlevideo.com 」である「2001:ce8:b2::/48」をルーターでrejectすることによって「xxxx.googlevideo.com 」へのアクセスのみを無理矢理IPv4にFailBackさせたら解決した。原因と対策を思いつくまで1週間近くかかったよ。。。ってこんなんわかるか!!

メモ(systemdでハイバネートとサスペンドを無効化)

正直いって、こんなんデフォルトで無効化しておいてほしい。罠スギ。

# systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
# systemctl restart systemd-logind.service

話は変わるけど、busterにしたら色々依存関係ぶっ壊れてopennebulaは起動しなくなった。ソースからビルドしようにも色々面倒なので、管理用のsunstoneだけ動かす仮想マシンをstretchで作った方が良いかもしれない。

ESXi→debian

自宅のESXiを色々あって、debian+KVMに構成見直し中。

理由は、無料版でVCenterがないと出来ることが極めて少ないのと、他のHypervisorがDebianなので使い勝手的に色々問題が大きかったため。とはいえ、DebianでのKVM管理はそれなりに手間なので手間を省くべくOpennebulaを試してみることにした。

令和の家庭菜園始動

写真撮り忘れたので、文字だけ。車で10分ほどの場所にある今まで行ったことがなかった大型の造園屋さんがやっているお店が凄まじい品揃えの豊富さでテンション上がり過ぎて大量に色々植えてみた。リンゴの木とか夏みかんの木とかまで売ってるし、レモンやブドウの苗とかも何十種類もあって安いしホームセンターの園芸コーナーで苗買うのがアホらしくなった。パークチップや園芸屋が選定した枝葉を使った完熟堆肥も持ち帰りOKだったので、土のう袋を持ち込んでたっぷり持ち帰って庭の菜園スペースに漉き込んだ。

レイズドベッド(深いの)

カボチャと紫蘇。カボチャはスーパーで購入した国産カボチャの種を植えた家庭菜園用としては難易度高めの実生。紫蘇は100均の種をコンパニオンプランツとして蒔いただけ。

レイズドベッド(浅いの)

大玉トマトの接ぎ木苗、レモンの木。レモンの木は1株1200円で40cmほどのまだ小さい苗。品種は書いてあったけど忘れた。

玄関ポスト下のミニ花壇

1株80円でバーゲンセールしてた花4種類

玄関横のプランター

ナスとニラ。ナスは近所の園芸屋さんの接ぎ木苗でお高め、ニラは今日購入したポット苗。1株100円と激安。

玄関横の大型フェルトプランター

紫芋。今まで鳴門金時しか育てたことなかったので初挑戦。鳴門金時や安納芋や紅あずまとかも売ってたけど、難易度低めで面白そうな蔓ということで。

庭の菜園スペース

スイートコーンとそのコンパニオンプランツとして枝豆。いずれもホームセンターで購入した種。

大型鉢

ポポー3種。タキイ種苗の通販で購入した高級な接ぎ木苗。確か品種は、NC-1とマンゴーとウィルソンだったはず。

ガーデンルームで水耕栽培

ミニトマト、枝豆、バジル。100均もしくはホームセンターで購入した種から育てたやつ。

室内で育苗中(苗になったらガーデンルームの水耕栽培に移動)

リーフレタス、ほうれん草。100均の種をソイルに植えて、芽が伸びてきたらスポンジに定植して水耕栽培装置に移植予定。

種類も量も過去最大規模なので、全部収穫できる気はしないけど、やれるだけやってみます。

どこにでもある逸般の誤家庭のk8s

今まで仮想化といえばkvm+virshで仮想マシンを増殖させていたんですが、そろそろアプリ増える度に仮想マシン作るのも効率悪いというか仮想マシン増えすぎで管理が億劫になってきたのと、いい加減コンテナ仮想化のお勉強もしないと思い始めてきたのでk8sを導入。といっても導入しただけなメモ。

Nodeは、とりあえずMaster兼Node×3+Node×1でコンテナホストはCentOS7.6-x86。kubesprayで設定をバラ巻いたんだけどかなり色々ハマった。コンテナエンジンは、Docker嫌いなのでcri-oを採用。

ハマリどころ1:余計な物は導入しない

kubesprayで導入する場合は、コンテキストにDocker/etcd/flannel/weave/cri-o/kubeletはyumリポジトリも含めて導入しない。入っていたらアンインストールしないと、kubesrayでばら撒いた設定と思いっきり競合する。しかも競合して動かない理由やログはansibleの実行結果から読み解くのは至難の業。

ハマリどころ2:SELinux, Firewalldはオフに

SELinuxは推奨されていない&kubesprayのplaybookで無効化してくれると思いきやAnsibleが途中で止まる。Firewalldも動いているとWarningが出て途中までは導入できるけど、flannelやweaveが導入された後に設定される仮想I/FがFirewalldに止められるので事前にそれも含めて許可設定しておくか無効にしておいて後から設定のほうが良さげ。

ハマリどころ3:Pythonのバージョンが酷い

CentOSに導入されているAnsibleは2.7.5でPython2.7.5をデフォルトで使おうとするけど、hosts.iniを自動生成するinventory.pyはPython 3.xを要求する。CentOS標準の3.4とepelにある3.6のいずれかなんだけど3.6にはraumel-yamlが必要なのにsubesprayのrequiements.txtにはraumel-yamlがない。そして、公式ドキュメントにあるhosts.iniはエラーが出て生成してくれずissueを見るとhosts.yamlを生成しろと書いてる。hosts.yamlは生成できたけど、cluster.ymlのPlaybookを実行するためのAnsibleで使うraumel-yamlだとやはり動かない。結局、サンプルを参考に手動でhosts.iniを作成してkubesprayのcluster.ymlのplaybookを実行。

他にもcri-oだとkubesprayのnode追加(scale)や削除(remove)が対応していないとか制約があるとか、コンテナ内からどうも名前解決が微妙な挙動をしているとか、Storageが未構成だとか、とりあえずdashboardが動く状態までは持って行けたけど、あと2~3回試行錯誤しながら作り直して設計をちゃんと考えないと仮想マシンを移植するのは非常に怖い。