ICTSC2021夏の陣に参加した
こんな感じのコンテスト。
私はチームStatus Code 418sで参加をしていた。
最終的に1700ポイントくらいで9位くらいだったと予想。
やったこと
参加前
友達に誘われて、何も知識がないまま参加をきめた。というか全体的にみんな知識がなかったので、専門分野を決めて1週間に1問ずつ過去問を解く会をやっていた。下のような感じのレポジトリ。(もしかしたらPrivateで見れないかも)
https://github.com/Hunachi/ictsc-418
私はネットワーク知識が皆無だったため、比較的触ったことがあるDockerとk8sの担当だった。
1日目
チームで解く問題の振り分けをした。5人チームで参加していたため、ひとり3,4問を担当していた。
私は「クラウドネイティブは難しい… 」と「dockerをインストールしただけなのに…」と「Webサイトにアクセスできない」をやることになった。
「dockerをインストールしただけなのに…」は何故か別のホストにsshすると自分のサーバに接続されちゃうような現象が起きていて、よくわかんないな〜と思いながら調べていた。しばらくIPアドレスを見ているうちにこのIPアドレスって何か意味があるのかな〜と思ってIPアドレスについて調べていたらDockerのsubnetのIPとhost名が一致しているせいでダメだったということに気づき問題を解くことができた。
結構有名な問題らしくて、知っている人はすぐに解けたらしい😭 まあ解けたしいいんだ。
その間に、@hunachiに「止まらない」がgoの問題っぽいから教えて欲しいと言われて、helpに入ったが、goの問題というよりかはDockerのオプションの問題だったので、ちょっとググって貢献することができた。ラッキー✌️
解き終わった後は、「Webサイトにアクセスできない」を頑張っていたが、k8sの設定ファイルがたくさんあって構成を見ることに必死で何もできずに終わってしまった。
2日目
夜に頭がリセットされて、とりあえずk8sの問題で困った時はpodのログとかdescribe
を使うということを過去問で学んでいたことを思い出したため、ログやdescribeしてデバッグをしていた。
そしたら、upstream sent too big header while reading response header from upstream...
というエラーを発見し、ググったらheaderのサイズが大きすぎてダメってエラーだったので修正した。ここで解けた終わりー!って思ったら、400エラーのThe plain HTTP request was sent to HTTPS port
が出て、「は????」という気持ちに。しばらく苦戦して、やっとhttpsの設定方法がわかり、無事解決した。
解決した後は残りが30分しかなかったため、「クラウドネイティブは難しい… 」に取り組んでみたもののAnsible触ったことなくて諦めてしまった。初めて出てくる知識はキツい。
感想
ネットワーク周りの問題が多く、全くネットワークわからんぷだったけど、解決できた時のアドレナリンがドバドバで最高だった。
問題が解けたら、チームメイトがめちゃくちゃ褒めてくれて、とてもいいチームだったなと思った。多分これめっちゃ大事だと思う。
参加前と参加後でチームメイトの成長も感じられて、本当に勉強になったしいい大会だった。次出る時はネットワーク周りの知識をもっとつけたり、k8s極めて準備万端にして参加したいなと思った。