kubectlを拡張した
TrsNiumです。 最近すっかり夏模様ですが、いかがお過ごしでしょうか? 私は外に出たくない余り、amazonやuber eatsに頼りがちです。。
今回はkubernetesのkubectlを少し拡張してみたので紹介します。
追加したコマンド
今回追加したのは、一度に複数のpodのコンテナにログインするというものです。
Deployment下のコンテナに入りリアルタイムな統計情報を見たいというのがモチベーションです。
実行するとこんな感じ
tmuxとkubectl execを組み合わせて同時にコンテナへログインする様にしています。
またtmuxの設定で入力を同期する様になっているので、全てのコンテナに対して同様の操作が可能です。
コードはこちら
kubectlにコマンドを追加する
kubectlにコマンドを認識させるのは簡単で、PATH
の通ったところにprefixがkubectl-
な名前のスクリプトやバイナリを置くだけです。
まとめ
kubectlにコマンドを追加するのは実に簡単。 良いアイデアがあれば、自分で拡張していきたいと思います。
reference
この辺りを参考にさせて頂きました、ありがとうございます。
RDBMSを作る - 構文解析
今、やりたことが多すぎて複数TrsNiumに分裂したいTrsNiumです。
タイトル通りに現在RDMBSを作成しています。(erlangで。) なぜerlangでRDMBSなのか?ですが、以下の理由があります。
erlang
- 関数型言語をまた触りたくなった
- 以前分散システムについて勉強したが、erlangのOTPを使えばいい感じに実践編に持ち込めそうだと思った。
- 一貫性プログラミングに適している
- 構文解析と字句解析がデフォルトで用意されている
RDBMS
などです。
さて理由はわかりましたが、RDBMSのことを知らなくては作れません。 そこで以下の本を選び、参考にしてみることにしました。
この本は解剖学と歌うだけあり、字句解析のことから、オプティマイザ、プランナ、トランザクションまで幅広く紹介しています。 ※理論を理解したい人は別途で、そのトピックに関する専門書や論文を読むと良さそう
字句解析・構文解析
erlangにはleexとyeccという字句解析と構文解析モジュールが用意されています。 これらを用いて構文解析をおこなっています。
流れは leexにsql文を流しトークンを取得し、yeccにトークンを流し構文解析をする感じです。 まだ作成途中で不完全ですが、このツイートのように徐々に構文を解析できるようになっています。
繋ぎ込みと字句解析を良しなにやれば良いか pic.twitter.com/nNIutQOMPB
— Trs (@TrsNium) June 1, 2019
作業はこのレポジトリの中で地道にやっていこうと思います。