id:masayosu / @masayosu2022/10/07 Kubernetes Meetup Tokyo #531Kubernetesをより高度に活用するための一歩目
View Slide
自己紹介● @masayosu● 株式会社はてな組織・基盤開発本部プラットフォーム部サービスプラットフォームチームSRE● 趣味○ 登山、キャンプ、ゲーム2
3はてなにおけるKubernetesの取り組み
はてなにおけるKubernetesの取り組み● 一部のチームのプロダクション環境でKubernetesを利用● クラウドプロバイダーが提供するマネージドサービス(EKS, GKE)を利用● AWS ECS > AWS EKS4
Hatena Developer Bloghttps://developer.hatenastaff.com/entry/2022/02/03/1005255
Kubernetes Meetup Tokyo #52https://speakerdeck.com/hayajo/kubernetes-meetup-tokyo-number-22-cfc51d31-6b4c-44f0-a715-5c3fe1f146506
2つの課題● エンジニア組織の課題○ Kubernetesの知見が利用しているチーム内に閉じてしまっている● Kubernetes運用チームの課題○ Kubernetesの運用はできているが使いこなせていない7
エンジニア組織の課題● Kubernetesの知見が利用しているチーム内に閉じてしまっている8
チームを横断した組織で取り組む9チームA チームB チームCSRE標準化委員会CloudNative推進会
これまでの取り組みの成果● コンテナチェックリスト● CloudNativeな環境におけるプラクティスを社内に共有○ CI/CD○ Batch Processing● EKSの社内標準構成の検討● EKS構築ソンの実施(現在進行中)10
Kubernetes運用チームの課題● Kubernetesの運用はできているが使いこなせていない11
Kubernetesを利用する理由● より高度なDevOpsを実現するためにカスタマイズができる○ Admission Webhook, CRD, CustomControllerを利用することで実現可能○ ただでさえ複雑なk8sのより難しい部分に触れていく必要がある■ →学習が必要12
13学習アプローチ
知識をインプット● 2ヶ月間、週に1時間あつまってもくもく会を実施● Kubebuilderを利用したAdmission WebhookやCustomControllerの開発方法を学習14https://zoetrope.github.io/kubebuilder-training/
手を動かす● 実際に手を動かす場として社内開発合宿を利用● 社内開発合宿○ モノづくりを楽しむ経験を通じて他チーム間の交流を深める○ 合宿は半期に1度、平日2日間にわたって開催○ まとまった時間を確保できる15
16成果物の紹介
mackerel-container-agent-sidecar-injector● Pod作成時にmackerel-container-agentをサイドカーコンテナとして注入してくれるツール● AdmissionWebhookのMutatingの機能を利用17
mackerel-container-agent-sidecar-injectorの開発18https://developer.hatenastaff.com/entry/2022/08/17/093000
開発のモチベーション● Kubernetesでmackerel-container-agentの利用を簡易にしたい○ Manifestに同じような記述を何度もしている19
開発のモチベーション● 3年前にAdmissionWebhookを利用して開発されていた○ Kubebuilderを利用することで現代風に作り変える○ AdmissionWebhookの知見を実際に手を動かして得ることができる20
GitHubでリポジトリを公開21https://github.com/mackerelio-labs/mackerel-container-agent-sidecar-injector
特徴的な機能の紹介● KubernetesのSecretからMackerelのAPI keyを取得可能○ Pod毎にMackrelのOrgを変更することが可能● KubernetesのConfigmapからconfigファイルを取得可能○ Pod毎に個別のmackerel-configを指定することがか可能● Helmチャートを公開22
23まとめ
● Kubebuilderを利用したAdmissionWebhook拡張は第一歩目にオススメ○ チーム横断組織のタスクとして現実的な時間で学べる範囲の課題だった○ 現場ですぐに役立つ機能拡張を作ることができる● 今後も学びを継続してより高度にk8sを活用したいまとめ24
25ご静聴ありがとうございました