CA Tech Challenge おうちk8s編に参加してきた

はじめに

先日,CyberAgentさんで開催されたCA Tech Challengeおうちk8s編に参加してきました.

当日はIntel NUCが各自に支給され,kindを用いて作ったクラスタ上に二日間で各自が設定したKubernetesに関する課題を達成するというものでした.

自分はPrometheus+Grafanaloki+GrafanaでKubernetesクラスタのモニタリング,ロギング基盤を構築しながら,余った時間でCNCF landscapeを眺めて気になったツールを色々と触ってみたりしていました.

この記事では当日の様子を振り返ってみたいなと思います.

イベントの様子

1日目

午前中は青山さん(@amsy810)からスライドを交えてKubernetesの簡単な復習とこれから使うkindの説明がありました(スライドは公開されていないようですがkindに関してはこちらとほぼ同一のものでした).

午後から本格的に開発スタートでした.
渡されたIntel NUCはあらかじめ必要なミドルウェアのインストールや設定は済まされており(ありがたい),すぐに作業を始めることができました.
この日やった作業は以下の通りです.

  • metrics-serverのデプロイ
  • helmのインストール
  • Prometheusのデプロイ
  • Grafanaのデプロイ

metrics-serverは必要ではありませんでしたが個人的にkubectl topを使えるようにしたかったため始めにクラスタに導入しました.

Prometheusのデプロイはhelm Chartを使いましたが,Prometheus Serverがpermission deniedでディレクトリを開くことができずエラーで止まり少し詰まりました.
調べてみるとver2.0から実行ユーザが非rootユーザになっており,そのせいによるものだとわかりました(参考: https://prometheus.io/docs/prometheus/2.0/migration/ ).
幸いhelmのvalueでsecurityContextが変更できたので,以下のように設定してあげたところ無事動いてくれました.

server:
  securityContext:
    runAsNonRoot: false
    runAsUser: 0
    fsGroup: 0

2日目

この日の作業内容は以下の通りです.

  • Grafanalokiのデプロイ
  • Grafanaのダッシュボードいじり
  • Harborのデプロイ
  • ArgoCDのデプロイ

Harborはjob-serviceポッドが突然死するため時間内に正常に動作するところまでは到達できませんでしたが,それ以外は概ねうまくいきました.
Grafanaダッシュボードはテンプレートを使いながら,入力補完に頼りつつ雰囲気でPromQLを書いて,いじっていました.
メンターさん曰く,慣れれば色々書けるとのことなので後日ちゃんと入門しようと思います.

2日目の終わりは各自の成果発表と,修了証書とメンターさんからコメントを頂く時間でした.
他の参加者の方が取り組んでいた内容も興味深いものが多く,ぜひ自分の手元でもやってみたいと思います.
また,頂いた修了証書には名前が書かれているだけでなく,裏面にコメントも添えられており,とても嬉しかったです.

おわりに

作業時間は決して長いものではありませんでしたが,社員の方からアドバイスを頂きながら色々と気になっていたツールを試すことができ,とても充実した2日間でした.
今回は作業時間が短いと思い,比較的簡単な課題を設定しましたが,振り返るともう少し尖った内容にしてもよかったなと反省です.

各ツールについての詳しい内容は後日改めて深掘りしながら,それぞれ記事にまとめたいなと思います.

f:id:tech_shanpu:20190921155106j:plain
2日間ありがとうございました!

ちなみに使ったIntel NUCはお土産として渡されました(太っ腹!).