Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
k8sのオートスケール(HPA)を抑えよう!/ HPA Deep Dive
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
oracle4engineer
PRO
March 23, 2022
Technology
4.8k
13
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
k8sのオートスケール(HPA)を抑えよう!/ HPA Deep Dive
Kubernetes Novice Tokyo #17の登壇資料
oracle4engineer
PRO
March 23, 2022
More Decks by oracle4engineer
See All by oracle4engineer
Kubernetesで作るLLM推論基盤(OCHaCafe Season 12 #1)
oracle4engineer
PRO
1
40
【Oracle AI Spotlight ウェビナー】AI活用を支えるデータ基盤とは ― いま押さえておきたい Oracle AI Database 26ai の注目機能
oracle4engineer
PRO
1
67
Deep Data Security 機能解説
oracle4engineer
PRO
2
800
kagent で Kubernetes 運用を考える
oracle4engineer
PRO
1
450
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
17
120k
Oracle Cloud Infrastructure:2026年9月度サービス・アップデート
oracle4engineer
PRO
1
320
[2026 Oracle Technical Deep Dive] Apache Iceberg × Oracle AI Database -Oracle Autonomous AI Lakehouseが実現するAI時代のデータ基盤- (2026年9月17日開催)
oracle4engineer
PRO
0
160
[2026 Oracle Technical Deep Dive] エンタープライズAIエージェントを支えるOCIソリューション。ラインナップと特徴を理解しよう! (2026年9月17日開催)
oracle4engineer
PRO
0
790
[2026 Oracle Technical Deep Dive] AI時代のデータベース基盤をどう選ぶ? Exadata Database Serviceの選択肢と使い分け (2026年9月17日開催)
oracle4engineer
PRO
0
260
Other Decks in Technology
See All in Technology
夫婦で子育てするための育児標準化
codmoninc
PRO
0
210
[AWS 秋のクラウドオペレーション祭り 2026]AWS DevOps Agentで変わるリリースと運用対応 ~リリース管理機能と Directed actions のご紹介~
furuton
4
1.2k
事業活動を AI Ready にする攻めと守りのデータエンジニアリング / data-engineering-for-ai-ready-business
pei0804
7
2.7k
JAWSUG TOHOKU 青森支部 「LoGoチャット」のAWS移行で 乗り越えたこと
taketakekaho
0
220
全PRの83%が AIレビューだけでマージできるようになった開発組織は その後どうなったか @2026/10
athug
0
150
go-sqletch
moznion
0
140
しろおびから始める!ログ活用の第一歩
shumei_ito
0
930
AI時代だからこそ推したい!Gitコマンド再入門
munakata
0
190
2026 秋 生成AI を活用した論文執筆ガイド/ワークショップ / Fall 2026: Guide and Workshop on Writing Papers Using Generative AI
ks91
PRO
0
100
自分で立ててみるLLMサービス
y_sera15
0
160
ai_cording_with_k8s_knowledge.pdf
mochizuki875
1
350
アウトプット初心者、半年間のふりかえり
4o1sobblue
0
250
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
530
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
360
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
280
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
WENDY [Excerpt]
tessaabrams
14
40k
Transcript
k8sのオートスケール(HPA)を抑えよう︕ Kubernetes Novice Tokyo #17 Takuya Niita Oracle Corporation Japan
Mar 23, 2022
⾃⼰紹介 • 仁井⽥ 拓也 • ⽇本オラクル株式会社 • OCHaCafeメンバー • k8s中⼼のセッション
(Network/Autoscale/Operator…) • 前職は某SIer • Cloud Native歴︓3年 • ジブリ⼤好き • OCHaCafeではジブリネタ(本編)で皆様をお待ちし ております︕︕ @takuya_0301 2 Copyright © 2022, Oracle and/or its affiliates.
登壇の経緯 3 Copyright © 2022, Oracle and/or its affiliates.
本⽇の内容はOCHaCafe Season4 #5の内容を⼀部改変してお届けします 4 https://speakerdeck.com/oracle4engineer/ kubernetes-autoscale-deep-dive https://www.youtube.com/watch?v=NlUQEgHKL8o&t=294s&a b_channel=JapanOracleDevelopers Copyright ©
2022, Oracle and/or its affiliates.
本題!! 5 Copyright © 2022, Oracle and/or its affiliates.
K8sのオートスケールにはどんな種類がある︖ Podの⽔平スケール(Horizontal Pod Autoscaler) • Podの数を増やすことによって処理性能を向上させるスケール⼿法 • CPUやメモリをはじめとして、ユーザ独⾃のメトリクスなども判断材料に利⽤可能 Podの垂直スケール(Vertical Pod
Autoscaler) • Podが利⽤可能なリソースを増強することによって処理性能を向上させるスケール⼿法 • 主にCPUとメモリを判断材料に利⽤ Nodeの⽔平スケール(Cluster Autoscaler) • Worker Nodeの台数を増やすことによって処理性能を向上させるスケール⼿法(k8s環境によって実装は異なる) • Podの⽔平スケールと連携することも Nodeの垂直スケール • Kubernetesの機能としては未実装 • クラウドベンダーなどが提供するAPIなどを利⽤してNodeのリソース増強は可能・・・ • 現時点(2022/3)時点では、各ベンダーでComputeのスペックをオンラインで変更する仕組みはない 6 Copyright © 2022, Oracle and/or its affiliates.
今⽇のトピック Podの⽔平スケール(Horizontal Pod Autoscaler) • Podの数を増やすことによって処理性能を向上させるスケール⼿法 • CPUやメモリをはじめとして、ユーザ独⾃のメトリクスなども判断材料に利⽤可能 Podの垂直スケール(Vertical Pod
Autoscaler) • Podが利⽤可能なリソースを増強することによって処理性能を向上させるスケール⼿法 • 主にCPUとメモリを判断材料に利⽤ Nodeの⽔平スケール(Cluster Autoscaler) • Worker Nodeの台数を増やすことによって処理性能を向上させるスケール⼿法(k8s環境によって実装は異なる) • Podの⽔平スケールと連携することも Nodeの垂直スケール • Kubernetesの機能としては未実装 • クラウドベンダーなどが提供するAPIなどを利⽤してNodeのリソース増強は可能・・・ • 現時点(2022/3)時点では、各ベンダーでComputeのスペックをオンラインで変更する仕組みはない 7 Copyright © 2022, Oracle and/or its affiliates.
HPAをDeep Dive!! 8 Copyright © 2022, Oracle and/or its affiliates.
HPA Horizontal Pod Autoscaler(HPA) • コンテナアプリケーション環境(Pod)を⽔平スケール(ス ケールアウト/イン)する仕組み • 正確にはDeployment(ReplicaSet)のレプリカ数を スケール
• HorizontalPodAutoscalerリソースに振る舞い(ス ケール範囲、スケール時の挙動)を定義 • Controller Managerのひとつである HorizontalPodAutoscalerControllerが管理を実施 • デフォルトでは15秒間隔で周期 • HPAリソースに定義したターゲット値に近づくように Podの数を調整 • 基本はPodの平均CPU/メモリ使⽤率を利⽤する が、カスタムメトリクスも利⽤可能 ・・・ Replica数を 変更 Replica数に応じ てスケール HorizontalPod AutoscalerController 9 Copyright © 2022, Oracle and/or its affiliates.
HPAのスケールの仕組み(CPU/メモリ使⽤率を利⽤する場合) ! ! ! HorizontalPod AutoscalerController metrics server ①HPAリソース取得 ③メトリクス取得
⑤スケール指⽰ ②メトリクス取得 ④スケール量算出 ⑥スケール 10 Copyright © 2022, Oracle and/or its affiliates.
(参考)mertircs server https://speakerdeck.com/bells17/metrics-server 前回Novice Tokyo#16でのbells17_さんのセッションを参考 11 Copyright © 2022, Oracle
and/or its affiliates.
HPAのスケールロジック(CPUを例に) 以下の計算式で必要レプリカ数を算出 具体例) • Pod(現レプリカ数:5)の平均CPU使⽤率の合計が90%、ターゲットのCPU使⽤率が70%の場合 • 必要なレプリカ数 = 5 *
(90(%) / 70(%)) = 6.42・・・ • 7個のレプリカが必要(2個のレプリカが追加) • Pod(現レプリカ数:5)の平均CPU使⽤率の合計が50%、ターゲットのCPU使⽤率が70%の場合 • 必要なレプリカ数 = 5 * (50 (%) / 70 (%)) = 3.57・・・ • 4個のレプリカが必要(1個のレプリカを削減) 考慮事項 • ⼩数点切り上げ • 「Podの平均CPU使⽤率」は、各Podの過去1分間のCPU使⽤率 必要なレプリカ数 = 現在のレプリカ数 * ( Podの平均CPU使⽤率 / ターゲットCPU使⽤率 ) CPU100%の基準は・・・?? 「ターゲットCPU使⽤率」・・・?? 12 Copyright © 2022, Oracle and/or its affiliates.
(参考)Resource RequestsとResource Limit https://speakerdeck.com/nao_saino/jie-ju-requeststolimitshadoushe-ding-surebaiifalseka 前回Novice Tokyo#16でのSainoさんのセッションを参考 13 Copyright © 2022,
Oracle and/or its affiliates.
HPA利⽤時のDeployment(Pod)側の定義 この部分の数値をCPU利⽤率100%と⾒る Resource RequestsとResource Limitsの書き⽅ • CPU 200m=0.2(core) • メモリ
100Mi ≒ 0.1Gi ≒ 104MB • CPU 1(core)=1000m • メモリ 1Gi = 1024Mi ≒ 1074MB 14 Copyright © 2022, Oracle and/or its affiliates.
HPA(Horizontal Pod Autoscaler) Manifest例(1) 項番 項⽬ 内容 1 スケール対象 スケール対象のapiVersion/kind/nameを
指定。 基本的にはapiVersion: apps/v1、 kind: Deploymentを指定。 2 スケール範囲 スケールする際のPodのレプリカ数の最⼩値、 最⼤値を指定。 この範囲内のスケールの振る舞いは behaviorフィールド(次スライド)によって決 定。 3 スケール条件とする メトリクス スケール条件に利⽤するメトリクスを指定。 CPU/メモリの他にカスタムメトリクスも指定 可能。 これが「ターゲットCPU利⽤率」 15 Copyright © 2022, Oracle and/or its affiliates.
HPA(Horizontal Pod Autoscaler) Manifest例(2) 項 番 項⽬ 種別 内容 4
スケール時 の振る舞い (デフォルト) スケール アウト 即時スケール(リードタイム無) 以下のうち、追加レプリカ数が 多い⽅を採⽤ • 15秒で稼働中のレプリカ数 分を追加 • 15秒で4つのPodを追加 スケール イン リードタイム300秒(5分) 15秒で必要レプリカ数まで削減 v1.18から追加になった機能 16 Copyright © 2022, Oracle and/or its affiliates.
HPA(Horizontal Pod Autoscaler)におけるスケール時の振る舞い(1) スケール時に指定可能な振る舞い(単⼀の場合) • Ex)現レプリカ数:3から必要レプリカ:10までスケールアウトする場合 • type: Percent •
type: Pods レプリカ数分、必要レプリカ数までスケールアウト レプリカ(Pod)を4個(value:4)ずつスケールアウト 15秒 15秒 periodSeconds 15秒 +3 +4 +3 +4 15秒 17 Copyright © 2022, Oracle and/or its affiliates.
HPA(Horizontal Pod Autoscaler)におけるスケール時の振る舞い(2) スケール時に指定可能な振る舞い(複数の場合) • Ex)現レプリカ数:80から必要レプリカ:10までスケールインする場合 指定したtypeのうち、 多い⽅(Max)を採⽤ 少ない⽅(Min)も指定可能 80個
72個 40個 ・・・ 36個 32個 10個 Percent Percent Percent Pods Pods 60秒 60秒 60秒 ・・・ スケールごとに再計算 を⾏い、”selectPolicy” に基づいてポリシーを 選択 18 Copyright © 2022, Oracle and/or its affiliates.
HPA Controllerが利⽤するメトリクス(HPA v2) 種別 メトリクス 収集元 スケールロジック PodResource PodのCPU使⽤率/メモリ 使⽤率
metrics serverがkubeletか ら取得した値 PodのCPU/メモリ使⽤率を利⽤して 評価 ContainerResource (alpha版) ContainerのCPU使⽤率 /メモリ使⽤率 metrics serverがkubeletか ら取得した値 ContainerのCPU/メモリ使⽤率を利 ⽤して評価 Pods Podに関する任意のメト リクス API Aggregation Layerから 取得した任意のエンドポイ ント ”率”ではなく、⽣値で評価を実施 Object 任意のメトリクス(Pod以 外のk8sオブジェクト) API Aggregation Layerから 取得した任意のエンドポイ ント 単⼀の値で、⽬標値と⽐較を⾏い、 評価を実施 External 任意のメトリクス(k8sオブ ジェクト以外) API Aggregation Layerから 取得した任意のエンドポイ ント 単⼀の値で、⽬標値と⽐較を⾏い、 評価を実施 カスタムメトリクス 19 Copyright © 2022, Oracle and/or its affiliates.
HPAのスケールの仕組み(カスタムメトリクスを利⽤する場合) ・・ ・ HorizontalPod AutoscalerController custom metrics (Pod) ①HPAリソース取得 ③メトリクス取得
⑤スケール指⽰ ②メトリクス取得 ④スケール量算出 ⑥スケール custom metrics (Object) custom metrics (External) metrics serverは利⽤しない 20 Copyright © 2022, Oracle and/or its affiliates.
カスタムメトリクス(type:Podsの場合) “type:Pods”を指定することで任意のPodメトリクスをス ケール条件に利⽤可能 “type:Pods”の場合は、target.typeは”AverageValue”固定 対象メトリクスは”packets-per-second” スケール条件には、平均CPU/メモリ”使⽤率”ではなく、 平均CPU/メモリ”使⽤値”(⽣の値)を利⽤ 21 Copyright ©
2022, Oracle and/or its affiliates.
複数メトリクスの設定 HPAは各条件の積(and条件)を維持 この場合は以下の条件 • 各PodのCPU使⽤率50% • 各Podが送信するパケットが1000パケット • main-route Ingressのバックエンドにある全てのPodが送信す
るパケットが2000リクエスト/秒 各メトリクスの必要レプリカ数を算出し、最も多い結果を採⽤ スケールイン/スケールアウトにより、算出した最も多い結果 に対してPod数を近づける 22 Copyright © 2022, Oracle and/or its affiliates.
HPAをDemo!! 23 Copyright © 2022, Oracle and/or its affiliates.
HPAデモ 環境 • Oracle Container Engine for Kubernetes(OKE)︓v1.22.5 • VM.Standard.E4.Flex(1oCPU/メモリ8GB)
× 3(Node) • metrics server︓v0.6.1 スケール対象のアプリケーション • アプリケーション • ベースイメージ︓busybox • command︓ʼdd if=/dev/zero of=/dev/null’ # CPUを100%にするため スケール条件 • ターゲットのCPU利⽤率︓50% • スケール範囲︓最⼩1/最⼤10 CRI-Oを使ってます!! 24 Copyright © 2022, Oracle and/or its affiliates.
• 開発者・エンジニアにお届けするテクニカル な勉強会です • クラウドネイティブな時代に⾝につけておくべ きテクノロジーを深堀りしていきます • テーマはオープン/デファクト・スタンダード を 基準に選定し、Oracle固有な話題にはな
らないように、且つ学んだ知識は広く応⽤が 利くように、配慮しています Season 5 • Kubernetes Operator 超⼊⾨ • Kubernetesで並列分散処理 • Kubernetes のセキュリティ • 挑戦 Typescript • 実験︕カオスエンジニアリング • MLOps を始めよう︕ 25
#ochacafe History Season 1 • コンテナを使ったCI/CD • Microservicesの運⽤・管理 • MicroservicesなJavaアプリケーション
• Hyperledger Fabricアプリケーション設計⼊⾨ガイド • 避けては通れない︕認証・認可 • ⼈にもマシンにもやさしいAPIのエコシステム Season 2 • これからはじめる︕Kubernetes基礎 • ⼀体何モノなの︖GraalVM ⼊⾨ • Serverlessな世界をのぞいてみよう︕ • Cloud Native時代のモダンJavaの世界 • 変幻⾃在♪ 広がるKubernetesのエコシステム • Cloud Native × Streaming はじめの⼀歩 OCHaCafe Premium (Oracleフォーカス spin-off) • Oracle Cloudで考える⾼可⽤性アーキテクチャ • クラウド・アプリケーションのパフォーマンス • Oracle Cloud Infrastructure Cloud Native 2021 • マイクロサービスとデータマネージメント • クラウドで実践するEnterprise Java Season 3 • Cloud Native流のストレージ管理 • サービス間通信のトレンド - gRPC & GraphQL⼊⾨ • Kubernetesクラスタの管理術 • 挑戦! JavaでReactiveプログラミング • 明解! NoSQLの勘所 • コンテナ・ランタイムの未来 Season 4 • ⽣体認証のイロハ • Kubernetesのネットワーク • CI/CD 最新事情 • マイクロサービスの認証・認可とJWT • Kubernetes のオートスケーリング • Observability 再⼊⾨ Season 5 • Kubernetes Operator 超⼊⾨ • Kubernetesで並列分散処理 • Kubernetes のセキュリティ • 挑戦 Typescript • 実験︕カオスエンジニアリング • MLOps を始めよう︕
今回はフロントエンド開発がテーマです。「“Typescript” って聞いたことはあるけど、Javascript とどう違うの? 何がメリットなの? どうやって開発すればいいの?」という初学者の⽅々に向けた Typescript の⼊⾨編をお届けします。 4⽉6⽇開催 挑戦︕Typescript https://ochacafe.connpass.com/event/241167/
n 2022年4⽉6⽇(⽔) n 19:00 – 21:00 *18:50 接続開始 27
Thank you 28 Copyright © 2022, Oracle and/or its affiliates.
None