Kubernetes Meetup Tokyo #31で「入門!ClusterAPI」というトークをした

Kubernetes Meetup Tokyo #31 で「入門!ClusterAPI 〜k8sクラスターもk8s APIで管理したい〜」というトークをした。スライドは以下。

セッションの後にsli.doを使った質問に何件か答えたのだけど、時間の都合上回答できなかったものが2つあったのでこちらで回答。

[ClusterAPIについての質問] ClusterAPI用のリソース管理ってどうしてますか?

Anonymous

ClusterAPI用のリソースというのがいわゆるマニフェストと仮定すると、他のk8sマニフェストと同じ様に管理すれば良いと思う。結局はyamlファイルなので、同じノウハウを使うことができる。

clusterAPIはclusterのバックアップについても面倒をみますでしょうか

Anonymous

クラスターのバックアップについては、ClusterAPI自身は面倒をみない認識でいる。Workload Cluster、Management Cluster共にVeleroの様なバックアップ専用のソリューションを使うのが良いかと思う。

さて、今回はオンラインでの登壇だったのだが、初めての体験で緊張した。

  • 聴衆の顔が見えないので雰囲気が掴みにくく、トークのペース調整が困難
  • 今回はモニタ2枚で片方に共有用の画面表示、もう片方に発表者ディスプレイを表示したのだが、これだと運営側とのやりとりが完全にできなくなることに発表中に気づいた。チャットなどで何か話しかけられていても気づけなかったかもしれないので、発表者ディスプレイは表示しない様にするなど対策が必要だろう。
  • sli.doを使った質問の仕組みはとてもよかった。これまでの登壇で、一番質問をもらったかもしれない。嬉しい。その一方、質問内容について質問者に確認できないので適切に回答できたかどうかが掴みにくいという課題は感じた。

いくつか課題は感じたものの、概ね体験としてはよかった。自宅にいろいろ設備を整える必要があるのでハードルはやや高いが、場所を選ばずミートアップに参加できるのは良い。他の方のトークもとてもよかったし、楽しかった!

Sidecarを使い、Keynoteの作図をApplePencilで行う

Keynoteの作図をマウスやトラックボールでやると手首や指への負担が大きい。微妙なサイズ変更や移動も疲れる。どうにか楽にできないかと思い、Sidecarを使ってiPad ProにKeynoteを表示し、Apple Pencilをマウスとして使うというのを試してみた。

オブジェクトの選択など、結構やりやすい気がする。文字入力する時にiPadを見ながらキーボードを入力する必要があり、首が疲れるのが難点だが作図する分にはマウスやトラックボールより楽なのではないかと思う。12インチならもっと快適だったかも。

WFH中に購入したキッチン用品3点

WorkFromHome体制になってから外食は減り、自炊のレパートリーを増やす日々である。手持ちの道具でも困ってはいないのだが、気分を上げるためにいくつかキッチン用品を購入した。

ホットサンドメーカー

Twitterで動画が流れてきたり、知人が買っていて良さそうだったので少し遅れて購入。フレンチトーストを作ると最高で、活用している。

写真内の下半分がホットサンドメーカーで作ったもの。フライパンで作った上半分に比べてフワフワでとにかく美味しい。今後フレンチトーストを作るときはホットサンドメーカーしか使わないと心に固く誓った。

ピーラー

セラミックのものから貝印のピーラーにしたのだが、とにかくスムーズに皮が剥けて良い。微妙に切れなかったりすると地味にイライラするので、こういうのは一定以上の品質のものを使うのが大事そう。

マッシャー

ポテトサラダを作る時にジャガイモを潰すのが大変だったので専用の道具を、と思い購入した。サイズは小さめだけど滅茶苦茶大量に作るわけでもないのでちょいどいい。洗いやすいので気軽に使えるのもよし。

TwitterとSlackのアプリをスマートフォンから消した

最近、なんとなく開いては眺めてしまって時間を無駄にしていること、マイナス感情を呼び起こす情報の方が多いなと感じたことからこれらのアプリをスマホから消すことにした。Facebookアプリは入れてても全く見ないんだけどな。Twitterについてはフォローやキーワードミュートを見直す必要もありそう。

kubectl -o custom-columnsで、配列内の任意のデータを表示したい

kubectlの–outputオプションを使うと、表示するデータとヘッダを自由に指定できる。これを使うと、例えばどのノードがDiskPressureやMemoryPressureのStatusがTrueか?を一覧で見ることができる。

方法としてはこんな感じ。costum-columnsは <header>:<json-path-expr> の形式で、これをカンマで区切って指定する。.status.conditionsは配列なのだけど、フィルタすることも可能で、以下のようにすれば良い。

~ $ k get node -o custom-columns='NAME:.metadata.name,DiskPressure:.status.conditions[?(@.type == "DiskPressure")].message'

これで、Nodeの名前とDiskPressure Conditionのメッセージを一覧で表示することができる。-o jsonpath でフィルタリングしてもいいけど、ヘッダ付きで一覧表示できるとやはり便利。