Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Kubernetes as a Service の利用者を支える機能 - Platform E...
Search
Masaya Aoyama (@amsy810)
March 09, 2023
Programming
1
2.6k
Kubernetes as a Service の利用者を支える機能 - Platform Engineering Meetup #1 / pfem01-amsy810-k8s
Kubernetes as a Service の利用者を支える機能
Platform Engineering Meetup #1
Masaya Aoyama (@amsy810)
March 09, 2023
Tweet
Share
More Decks by Masaya Aoyama (@amsy810)
See All by Masaya Aoyama (@amsy810)
Keynote: Cloud Native Darwinism: Continuous Evolution of Platforms for Competitive Edge - KubeCon + CloudNativeCon Japan 2025 / kubecon-japan-2025-amsy810-keynote
masayaaoyama
0
17
KubeCon + CloudNativeCon EU 2025 Overview / k8sjp-70-kubecon-cncon-eu-2025-overview
masayaaoyama
0
91
KubeCon + CloudNativeCon NA 2024 Overviewat Kubernetes Meetup Tokyo #68 / amsy810_k8sjp68
masayaaoyama
0
430
Cloud Nativeを支える要素技術・プロダクト・プラクティスの歩み / infrastudy-returns-01-amsy810
masayaaoyama
4
750
KubeCon + CloudNativeCon EU 2024 Overview / k8sjp64-kubecon-overview
masayaaoyama
0
330
KubeCon + CloudNativeCon NA 2023 Sessions for Site Reliability Engineers / amsy810-srett08
masayaaoyama
2
760
KubeCon + CloudNativeCon NA 2023 Overview+Recap for Gateway API Cloud Native Community Japan Kickoff meetup / amsy810_cncj1
masayaaoyama
0
1.9k
Kubernetes基盤を自律的に支えるController化の実装Tips / forkwell-202303-amsy810-k8s
masayaaoyama
7
3.8k
CyberAgentにおけるKubernetes as a Serviceの歩みと利用者を支える機能 / cainfra01-amsy810-kubernetes
masayaaoyama
3
2.2k
Other Decks in Programming
See All in Programming
コード書くの好きな人向けAIコーディング活用tips #orestudy
77web
3
320
Claude Codeの使い方
ttnyt8701
1
120
Select API from Kotlin Coroutine
jmatsu
1
170
Using AI Tools Around Software Development
inouehi
0
1.2k
Webからモバイルへ Vue.js × Capacitor 活用事例
naokihaba
0
710
事業戦略を理解してソフトウェアを設計する
masuda220
PRO
22
6.2k
Effect の双対、Coeffect
yukikurage
5
1.4k
GoのWebAssembly活用パターン紹介
syumai
3
10k
Cursor AI Agentと伴走する アプリケーションの高速リプレイス
daisuketakeda
1
120
アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
andpad
0
230
データベースコネクションプール(DBCP)の変遷と理解
fujikawa8
1
270
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
300
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
6
690
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Building Adaptive Systems
keathley
43
2.6k
Designing for humans not robots
tammielis
253
25k
Optimizing for Happiness
mojombo
379
70k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.9k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
For a Future-Friendly Web
brad_frost
179
9.8k
Being A Developer After 40
akosma
90
590k
The Language of Interfaces
destraynor
158
25k
Transcript
Masaya Aoyama CyberAgent Kubernetes as a Service ͷར༻ऀΛࢧ͑Δػೳ Platform Engineering
Meetup #1 amsy810 @amsy810
- Co-chair ੨ࢁ ਅ + CREATIONLINE - 技術アドバイザ + SAKURA
Internet Research Center – 客員研究員 + 3-shake 技術顧問 + PLAID - Organizer - KaaS Product Owner - Publications Twitter: @amsy810
CyberAgent ͷϓϥΠϕʔτΫϥυͱ ։ൃνʔϜ
CyberAgent のプライベートクラウド CyberAgent には もともと事業領域ごとに、2 つのプライベートクラウド環境が存在 2021年ごろに合併し、 CIU(CyberAgent group Infrastructure
Unit)へ AI・広告事業側 プライベートクラウド (OpenStack ベース) メディア・ゲーム事業側 プライベートクラウド (OpenStack ベース)
KaaS / ML Platform 開発チーム
Kubernetes as a Service ʹجຊతͳػೳ
AKE の歴史
クラスタの管理: AKE Cluster API Provider
AKE におけるクラスタの管理 クラスタ アップグレード AKE Cluster API Provider (cluster-api-provider-openstack based)
& AKE Cluster Manager クラスタ オートスケール AKE Cluster Autoscaler (cloudprovider/clusterapi based) ノード オートヒーリング AKE Node Autorepair
AKE ʹ͓͚ΔΞυΦϯཧͱࣗಈԽ
ユーザークラスタ郡に対するエコシステムの管理 管理クラスタ上にデプロイ 管理クラスタ ユーザークラスタ 「ユーザー側では直接利⽤しないもの」 「KaaS としての⾃動管理系の機能」 などで利⽤ e.g. Cluster
Autoscaler 管理クラスタからユーザクラスタの状態を監視し、スケールが必要になったらスケールアウト e.g. Node Auto Repair 管理クラスタから、ユーザークラスタのノードの状態を確認し、問題が⽣じたら修復 ユーザー向けクラスタ上にデプロイ 管理クラスタ ユーザークラスタ 「ユーザが直接利⽤する必要があるもの」 「ユーザクラスタ上の情報が必要なもの」 などで利⽤ e.g. Cert Manager CRD を含む⼀式をデプロイし、ユーザーの Ingress などで証明書が利⽤できるように e.g. Prometheus / Exporter 類 ユーザのクラスタ上でメトリクスを収集する(管理クラスタへ集約)
ブランチ戦略 • 新たな Kubernetes マイナーバージョンが出るたびに main ブランチから切り出す • 変更は main
ブランチに⾏い、各ブランチには⾃動的に cherry-pick(実際には PR) • リリースを⾏うタイミングで各ブランチで tag を発⾏
Kubernetes マニフェストの⾃動更新の⽬指す形 Config リポジトリに対して、各エコシステムに対する ⾃動的なアップグレードのPRと変更差分の表⽰ Config Repo manifest manifest
αΠόʔΤʔδΣϯτͱAKE ͕ࢦ͢ੈք؍
CyberAgent における KaaS を取り巻く現状 CyberAgent グループには、約 100 のプロジェクト(⼦会社)が存在 CIU がターゲットとするのは各プロジェクト(⼦会社)
GKE on GCP / EKS on AWS / AKE on プライベートクラウド の技術選定は⾃由 AKE チームはパブリッククラウドと⽐較して、利⽤される・必要とされるプラットフォームの提供を⽬指す e.g. コスト、利便性、運⽤容易性、⼿厚いサポート、etc ただ Kubernetes を提供するだけだと、各利⽤者はがさまざまな上物を⼿間をかけて⽤意する ⾞輪の再発明が多い・ベストプラクティスがほかチームに伝播しない・膨⼤なキャッチアップが必要 といった組織上の課題を解決する ユーザーが遭遇した問題への対応・要望のある機能 を共通化してプラットフォーム側で提供
Kubernetes 運⽤の課題と AKE が⽬指す世界観 Cloud Native ではサービスアプリケーションを進化させ続けることが注⽬されがち… Kubernetes / Platform
側も塩漬けせずに進化させ続けるべき CloudNative / Kubernetes は運⽤が⼤変 「CI/CDなどで組み込む必要があった機能」 「コンサルが改善提案する内容」なども Platform 側で提供 CloudNative / Kubernetes はキャッチアップが⼤変 「適切に扱うためのベストプラクティス」 「広がり続けるエコシステム」を提供
Kubernetes 運⽤の課題と AKE が⽬指す世界観 Cloud Native ではサービスアプリケーションを進化させ続けることが注⽬されがち… Kubernetes / Platform
側も塩漬けせずに進化させ続けるべき CloudNative / Kubernetes は運⽤が⼤変 「CI/CDなどで組み込む必要があった機能」 「コンサルが改善提案する内容」なども Platform 側で提供 CloudNative / Kubernetes はキャッチアップが⼤変 「適切に扱うためのベストプラクティス」 「広がり続けるエコシステム」を提供
Kubernetes 利⽤の最適化・改善⽀援 余剰権限 の検知と通知(In progress) 余剰リソース の検知と通知 ⾮推奨・廃⽌ API の検知と通知
監査ログと Role/RoleBinding を元に不要な権限を算出し、通知を⾏う VPA をベースに Requests / Limits の改善提案を⾏う ユーザーはワークロードをデプロイするだけで、⾃動的に最適 なリソース設定の取得・適⽤までを⾏うことが可能 ⾮推奨 API ⽤の Constraints の .status.violations を利⽤し、 現在の Kubernetes version で⾮推奨なリソースの洗い出し
CyberAgent 横断での Gatekeeper Policy 合計 63 個のポリシーを実装 順次 さまざまな Kubernetes
への導⼊推進へ 導⼊を始めやすい提供⽅法 • Namespace 単位の Opt-in • リソース単位の Opt-out
ORAS による Constraint の OCI Image 化 Conftest の代わりに gator
test コマンドを利⽤(実際は kustomize/helm 対応のためラップしたツールを提供) ConstraintTemplate / Constraint を OCI Image 化して提供 ユーザーの任意のポリシーも組み合わせ可能 https://open-policy-agent.github.io/gatekeeper/website/docs/gator/#bundling-policy-into-oci-artifacts ConstraintTemplate / Constraint ConstraintTemplate / Constraint ConstraintTemplate / Constraint Git Repository apply Pull Request ConstraintTemplate / Constraint ConstraintTemplate / Constraint ConstraintTemplate / Constraint OCI Image 化したポリシー群 $ gator test --image policy:v0.1 manifests/
Kubernetes 運⽤の課題と AKE が⽬指す世界観 Cloud Native ではサービスアプリケーションを進化させ続けることが注⽬されがち… Kubernetes / Platform
側も塩漬けせずに進化させ続けるべき CloudNative / Kubernetes は運⽤が⼤変 「CI/CDなどで組み込む必要があった機能」 「コンサルが改善提案する内容」なども Platform 側で提供 CloudNative / Kubernetes はキャッチアップが⼤変 「適切に扱うためのベストプラクティス」 「広がり続けるエコシステム」を提供
Observability を実現する環境 管理クラスタ ユーザークラスタ ユーザークラスタ M etrics Metrics Promtail Promtail
Log Log Datasource Datasource Datasource Datasource proxy テナント A テナント B prometheus-community/prom-label-proxy を利⽤して Project ラベルを元にテナント分離 Dashboard Alerting Dashboard Alerting AKE 利⽤ユーザの監視基盤としては Grafana Alerting を提供 ※ 別途 Datadog のアドオンも提供 Datasource Alertmanager AKE利⽤者 AKE利⽤者 AKEチーム Alerting 運⽤上必要なダッシュボード ⼀般的なアラートなども提供 AKE チームが死活監視に必要なもの +ユーザーが必要なメトリクス
その他の OSS の利⽤・提供 イメージスキャン(SBOM ⽣成 / 脆弱性スキャン)の提供 Cisco 発の OpenClarity
プロジェクトの kubeclarity を利⽤ • Syft: SBOM の⽣成 • Grype: SBOM を元にした脆弱性スキャン [特徴1] クラスタ上で動作しているコンテナイメージを対象にスキャン [特徴2] クラスタ上で起動しているコンテナを対象にした検索も可能 Cilium CNI の提供(In-progress) 現在は Calico CNI を利⽤ 期待していること • ebpf / DSR 構成による レイテンシ削減 • DSR 構成による ClientIP の保持 • 可観測性の向上 • より柔軟な Network Policy • 将来的な eBPF-based Service mesh 参考: https://amsy810.hateblo.jp/entry/2022/12/02/122209 ⾼機能化 アドテクなどの領域に おけるメリット
·ͱΊ
まとめ AKE は約 6 年に渡って稼働し、OpenStack Heat > Clsuter API へ
少⼈数で効率的に運⽤するために、ソフトウェアによる⾃律化を推進 ⻑年の Kubernetes 運⽤の経験から、 ユーザーが負担と感じる運⽤や実装、 進化し続けるベストプラクティスを AKE チームが提供 アプリケーションだけではなく、進化し続ける Platform へ
We are hiring ! • Kubernetes クラスタの⾼度な運⽤⾃動化 with CustomController •
ユーザクラスタに対するセキュリティ・SRE ⽀援機能 • 機械学習 × 運⽤⽀援 • , and many more… ご相談は下記までお気軽にどうぞ Twitter: @amsy810 E-mail:
[email protected]
Thank you for your attention Twitter: @amsy810