Slide 1

Slide 1 text

id:masayosu / @masayosu 2022/10/07 Kubernetes Meetup Tokyo #53 1 Kubernetesをより高度に 活用するための一歩目

Slide 2

Slide 2 text

自己紹介 ● @masayosu ● 株式会社はてな 組織・基盤開発本部 プラットフォーム部 サービスプラットフォームチーム SRE ● 趣味 ○ 登山、キャンプ、ゲーム 2

Slide 3

Slide 3 text

3 はてなにおける Kubernetesの取り組み

Slide 4

Slide 4 text

はてなにおけるKubernetesの取り組み ● 一部のチームのプロダクション環境で Kubernetesを利用 ● クラウドプロバイダーが提供するマネージド サービス(EKS, GKE)を利用 ● AWS ECS > AWS EKS 4

Slide 5

Slide 5 text

Hatena Developer Blog https://developer.hatenastaff.com/entry/2022/02/03/100525 5

Slide 6

Slide 6 text

Kubernetes Meetup Tokyo #52 https://speakerdeck.com/hayajo/kubernetes-meetup-tokyo-number-22-cfc51d31-6b4c-44f0-a715-5c3fe1f14650 6

Slide 7

Slide 7 text

2つの課題 ● エンジニア組織の課題 ○ Kubernetesの知見が利用しているチーム内に 閉じてしまっている ● Kubernetes運用チームの課題 ○ Kubernetesの運用はできているが使いこなせ ていない 7

Slide 8

Slide 8 text

エンジニア組織の課題 ● Kubernetesの知見が利用しているチーム内に 閉じてしまっている 8

Slide 9

Slide 9 text

チームを横断した組織で取り組む 9 チームA チームB チームC SRE標準化委員会 CloudNative推進会

Slide 10

Slide 10 text

これまでの取り組みの成果 ● コンテナチェックリスト ● CloudNativeな環境におけるプラクティスを 社内に共有 ○ CI/CD ○ Batch Processing ● EKSの社内標準構成の検討 ● EKS構築ソンの実施(現在進行中) 10

Slide 11

Slide 11 text

Kubernetes運用チームの課題 ● Kubernetesの運用はできているが使いこなせ ていない 11

Slide 12

Slide 12 text

Kubernetesを利用する理由 ● より高度なDevOpsを実現するためにカスタ マイズができる ○ Admission Webhook, CRD, CustomController を利用することで実現可能 ○ ただでさえ複雑なk8sのより難しい部分に触れて いく必要がある ■ →学習が必要 12

Slide 13

Slide 13 text

13 学習アプローチ

Slide 14

Slide 14 text

知識をインプット ● 2ヶ月間、週に1時間あつ まってもくもく会を実施 ● Kubebuilderを利用した Admission Webhookや CustomControllerの開発方 法を学習 14 https://zoetrope.github.io/kubebuilder-training/

Slide 15

Slide 15 text

手を動かす ● 実際に手を動かす場として社内開発合宿を利用 ● 社内開発合宿 ○ モノづくりを楽しむ経験を通じて他チーム間の交流を深める ○ 合宿は半期に1度、平日2日間にわたって開催 ○ まとまった時間を確保できる 15

Slide 16

Slide 16 text

16 成果物の紹介

Slide 17

Slide 17 text

mackerel-container-agent-sidecar-injector ● Pod作成時にmackerel-container-agentをサイド カーコンテナとして注入してくれるツール ● AdmissionWebhookのMutatingの機能を利用 17

Slide 18

Slide 18 text

mackerel-container-agent-sidecar-injectorの開発 18 https://developer.hatenastaff.com/entry/2022/08/17/093000

Slide 19

Slide 19 text

開発のモチベーション ● Kubernetesでmackerel-container-agentの利用を 簡易にしたい ○ Manifestに同じような記述を何度もしている 19

Slide 20

Slide 20 text

開発のモチベーション ● 3年前にAdmissionWebhookを利用して開発されていた ○ Kubebuilderを利用することで現代風に作り変える ○ AdmissionWebhookの知見を実際に手を動かして得 ることができる 20

Slide 21

Slide 21 text

GitHubでリポジトリを公開 21 https://github.com/mackerelio-labs/mackerel-container-agent-sidecar-injector

Slide 22

Slide 22 text

特徴的な機能の紹介 ● KubernetesのSecretからMackerelのAPI keyを取得可能 ○ Pod毎にMackrelのOrgを変更することが可能 ● KubernetesのConfigmapからconfigファイルを取得可能 ○ Pod毎に個別のmackerel-configを指定することがか可能 ● Helmチャートを公開 22

Slide 23

Slide 23 text

23 まとめ

Slide 24

Slide 24 text

● Kubebuilderを利用したAdmissionWebhook拡張は第一歩 目にオススメ ○ チーム横断組織のタスクとして現実的な時間で学べる範 囲の課題だった ○ 現場ですぐに役立つ機能拡張を作ることができる ● 今後も学びを継続してより高度にk8sを活用したい まとめ 24

Slide 25

Slide 25 text

25 ご静聴ありがとうございました