JANOG52に行ってきました

www.janog.gr.jp

に行ってきました。 前日に新幹線で長崎入りし、仕事の関係でDay3は参加せず帰ってきました。

これまではプログラミング関係や、情シス関係のイベントへの参加がメインでしたが、ネットワークまわりに強くなりたいので参加してきました。

直近でInteropJANOG両方に参加したので、分からない話題はだいぶ減った印象があります。しかし利用したことのない技術が多いので、完全にわかったとは言えない程度だなと感じています。手を動かすことで理解を深めていきたいです。

観光の話になりますが、グラバー園長崎原爆資料館平和公園、爆心地公園、崇福寺に行けたのでまあまあ回れました。稲佐山や、軍艦島、美術館はまた今度の課題としたいと思います。

大阪のコーポレートエンジニアリング勉強会で発表してきました

こちらの勉強会です。

corp-engr.connpass.com

コロナ禍により発表機会が失われていましたが、大きな仕事をしたので発表機会を作ってもらいました。テーマは、コーディングやIaCでした。Google Workspaceまわりでのコーディングに関して話しました。また、イベントの飲食スポンサーをしました。

 

発表資料は以下をご覧ください。

esa-pages.io

 

techlife.cookpad.com

完全にベストなタイミングで上記記事が公開されまして、よい反響があったのではないかと思います。

 

会社Webページも作りましたので、今回の発表内容のようなお困りごとがある方はお問い合わせいただければと思います。

株式会社I-Style

土地勘

東京にはおそらく9年くらい住んでいたため、ある程度土地勘がある。少しくらい風景が変わっていても対応することができる。

しかし、大阪はまだ3年目くらいで期間も短く、コロナ禍の子育て中なので圧倒的に出歩いていない。なので大阪の土地勘がかなり薄い。

時間が経てば土地勘はついてくると思うが、そもそも大阪ってややこしい構造なことが多い気がしている。斜めの狭い道路が多いと車の運転などいろいろ難しい。シムシティやってる視点だと、大通りと街路つくりをやりなおしたくなる。

碁盤の目かつ道路が広い都市が好きなのだなと再実感したのだった。

出張の荷物

最近出張の際の荷物を少なめにすることができてきた。4泊の出張でスーツケースなし、リュックのみで動くことができるようになった。

ホテルで洗濯できることと、連泊であることが前提となっている。だいたいドーミーインに泊まるのでこうしたことがやりやすい。

ところで話は変わるが、出張中の体重管理に困っている。出張中はよく食べよく飲むので、体重が増えがちだ。そのため、出張中も普段と同様にテニスやボルダリングができたらいいのにと考えている。しかし、そのために荷物が増えてスーツケースを持ち運ぶようになるのも悩ましいので困ったね。

EKSアップグレードの苦労

以下の記事にあるように、"1.22 クラスターは 2023 年 6 月 4 日にサポートが終了"する。

https://aws.amazon.com/jp/blogs/news/amazon-eks-now-supports-kubernetes-version-1-26/

 

そして仕事で1.22をまさに使っているので、6/4までにアップグレードを終える必要がある。

これまでは自分が1人でアップグレード作業をしていたのだが、自分がやり続けることで他のメンバーの成長機会を奪うことにつながると考え、アップグレード作業を手放し他のメンバーにやってもらうことにした。

 

タイミングがいいのか悪いのか、これまでスムーズにいっていたアップグレード作業でいくつもどハマりしたので、未来の自分を助けるためにもメモを残しておく。

 

ハマったところたち

eksctlでnodegroupを使っていて、アップグレード作業の際にはnodegroupをもう一つ作り、古いnodeをdrainして、drainが完了したら古いnodegroupを削除するというのがアップグレード作業のおおまかな流れだ。

 

まず、eksctlで新しいバージョンのnodegroupを作ろうとしたが失敗した。

amiFamilyの指定が必要になってたことと、Amazon VPC CNI plugin for Kubernetes Amazon EKS アドオン(以下、CNIと表記)が古く新しく作ったnodeがhealthyにならなかったことが原因だった。

 

CNIのバージョンアップして、新しいバージョンのnodegroupを作れるようになり、古いnodeをdrainしようとしたときに、Throttlingが起きてdrainできない事象が発生した。詳細としてはkubectl get podしたときに、cronjobが作成するpodが大量に残っていたことでdrain起因の新たなpod作成に失敗していたことが原因のようだった。この時にすでにkube-proxyがうまく動いてなかったのだろう。

これは作業前の検証環境の状態確認が甘かったというか適当だったところなので反省しかない。

pod全て消してもdrainに失敗するので調べたところ、kube-systemのpodたちもうまく動いてなかった。aws-nodeはReadinessやLivenessのprobeでエラーがでていた。よく見ると、probeでgRPC通信が失敗していた

Readiness probe failed: {"level":"info","ts":"2020-06-16T15:34:23.817Z","caller":"/usr/local/go/src/runtime/proc.go:203","msg":"timeout: failed to connect service \":50051\" within 1s"}

aws-node Readiness probe errored: rpc error: code = Unknown desc = failed to exec in container: container is in CONTAINER_EXITED state

 

ここまでやって、kube-proxyが落ちていることに問題があるのでは?と気がついた。

kube-proxyは、ImagePullbackoffで落ちていた

ECRからImage取ってくるときに、no such hostと出ていたので通信がおかしいことがわかった
AWS公式のトラブルシューティングガイドを見ても全部正常だった
https://repost.aws/ja/knowledge-center/eks-ecr-troubleshooting

 

 

eksctl utils update-kube-proxy -c <cluster-name> --approve


をしたら、container imageのURLに、 region-code って入ってたせいでDNS名前解決に失敗していて、ImagePullできていないことがわかった。こんな感じのimageになっていた。ap-northeast-1が入るべきところにregion-codeという文字列が入ってしまったら名前解決できないのは、それはそうだねという感じ。

--region を渡さなかったからこうなった?まだよくわかっていないところ。

 

image: xxxxxxxxx.dkr.ecr.region-code.amazonaws.com/eks/kube-proxy:v1.23.17-eksbuild.1

 

daemonsetをyamlに吐き出して、region-codeをap-northeast-1に書き換えたらkube-proxyがうまく動いた。

kube-proxyがうまく動いたら、aws-nodeやcodednsもうまく動くようになった。

 

最後に

一度のアップグレード作業でいくつバージョンをあげるのがいいのだろう。

ECSでつくらないの?というのはもっともな質問であると思う。しかし、このサービスのインフラを作る時にパッと手が動くのがEKSであった。このような苦労があるならECS化したい気持ちが芽生えつつあるが、そこまでの工数割けるのか?というところはまだ具体的に考えられていない。

他の人に運用を渡そうとした途端にこのようなことになった。たくさんの失敗を経験できたので、まあよかったのではないだろうか。検証環境があって本当に良かった。

出張帰りの電車の中で、スマホで一気に書いた記事なので、前提条件などいろいろ雑になっているかもしれない。間違った認識により適当なことを書いているところがあるかもしれない。そのようなところを見つけたらご指摘ください。

技術者文化をつくり、育てる

RubyKaigiに行った自分は気持ちやモチベーションが高まっており、日々の開発や勉強といった研鑽をやっていくぞというモードになっている。

しかし、同僚たちとの日々の開発や勉強にも良い影響を与えようと考えると難しくなる。そして、たぶんそれはおこがましいことのようにも思う。自分しか変えられないだろうという気持ちがあるからだ。

技術者文化をつくり、育てるのは難しい。一朝一夕ではどうにもならない。自分がやっていっている姿や、自分が楽しんでる姿を見せつつ巻き込んでいけば、どうにか良くなっていってほしい。

RubyKaigi 2023

rubykaigi.org

長野県松本市で開催されたRubyKaigi 2023に参加してきました。

楽しさ

技術を学び、人と話すことはこんなにも楽しいのだったな。と思い返すことができました。COVID-19により失われた数々の体験を取り戻していく旅だったように思います。

以下の記事に良いことが書いてあって完全同意です。技術カンファレンスで摂取できる栄養素は大変貴重だと思います。しかもこれはオンラインでは摂取もしくは吸収の効率が落ちるように思います。

技術はやっぱり面白いし,この界隈にいる人たちの熱量からしか得られない栄養素があるなと思う

tomio2480.hatenablog.com

仕事との関連

自分は最近 "コードを書く情シス"をキャッチコピーにして仕事をしています。プログラミング言語のカンファレンスに参加することは自分にとって意味のあることですし、読み書きしやすいRubyであることにも、会社での教育上の意味を見出しやすいものと思っています。何か、情シスへの支援をする仕事の中で共通する問題について、解決策を提示できそうなところがあればコードを書いてOSSにしたいなという気持ちはあります。

売り切れる体力気力

体力気力と、スマホのバッテリー残量を見つつ無理そうだったらホテルで休む。ホテルで配信を見る。元気になったら会場に戻る。という繰り返しでした。 まさに以下の記事で書かれている "廊下" を楽しむためには体力気力が満ちていることがとても重要ですね。

tomio2480.hatenablog.com

自分は何ができるのだろう

RubyKaigi 2023はとてもいいイベントでした。しかし楽しい、面白い、いいイベントで済ませて良いのでしょうか。自分は今そこを今考えているところです。自分はこれまでRubyKaigiの当日スタッフ、レポート班をやってきました。その流れで、るびまの編集にも関わっていた時期がありました。

お題:「会議」といえば

【十周年記念企画】 Rubyist Magazine へのたより

https://blade.ruby-lang.org/ruby-list/49732

そしてありがたいことに地域RubyKaigiのオーガナイザーも経験することができました。

http://tokyo10.rubykaigi.info/

ではこれからは?

なにもわからないけど、子育てがもう少し落ち着いたらRubyコミュニティで何かできたらいいなと思っています。

みなさんはどうですか

これを読んでいる方はRubyKaigiという場、コミュニティ、技術のどれに興味があるのでしょうか。自分は場とコミュニティです。昔から変わっていません。 もし今回RubyKaigiに参加してみていいイベントだなと思ったなら、当日スタッフとかをやってみるとよいでしょう。一般参加者のときとは、違った見え方があるし、いろいろな方と仲良くなりやすいです。Deep Diveしたほうが圧倒的に楽しいと思います。るびまや、日本Rubyの会の活動を知り、今活動されている方々とお話するのもよいでしょう。

自分のことになりますが会社の経営層になり、一般社団法人LOCALの理事をしています。

www.local.or.jp

こうした背景からか、"一般社団法人の運営と継続" というテーマに対しては人よりも気持ちがあるように思いました。今回のRubyKaigiでこの気持ちに気がつく事ができました。組織を存続させていくのは大変ですし、ボランティアベースの組織運営は特定の人が頑張る形になりがちです。いつだって誰かの助けを欲していると思います。 あなたがRubyに対してお客さん以上の気持ちを持っているなら、何かできるかもしれませんね。知らんけど。

まとめ

運営に関わられたみなさま、現地でお会いしたみなさまありがとうございました。大変楽しいKaigiでした。また行きます。

さて、RubyKaigi自体の話はここまでで、ここからは観光などの話になります。

観光

今回はAttendeeとして参加しました。すべてのセッションを聞ける体力気力理解力すべてが足りていないので、合間合間で観光することで癒やされていました。 松本市美術館松本城、川、レストラン鯛萬、草庵、あがたの森公園信州大学の松本キャンパスあたりに行ったのですがどれもよかったです。松本市とてもいいところでした。いくつか行けなかったところがあるので、次回以降の宿題としたいと思います。

松本市美術館です。草間彌生さんは松本市出身のようです。
アーツ・アンド・クラフツ展という企画展示も大変良かったです。

松本城

女鳥羽川の千歳橋から

馬刺し

ざる蕎麦と天ぷら

tabelog.com

鯛萬というレストランに行きました。大満足でした。もともと、鯛萬という料亭だったそうです。フランス料理店でなぜ "鯛" という文字が入っているのか不思議と思いお店の方に聞いてみたところ教えてもらいました。

コース料理の鯛のフリットのはず

tabelog.com

シェアサイクルがあることに気がついたので、こちらのサービスを使いました。大変便利でした。 www.hellocycling.jp