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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
【Oracle AI SPOTLIGHT ウェビナー】分散した企業データをつなぎ、AIエージェントで業務に活かす
oracle4engineer
PRO
1
52
Deep Data Security 機能解説
oracle4engineer
PRO
3
1k
Autonomous AI Lakehouse - Live AI Hubから始めるセキュアなAIデータ活用 -
oracle4engineer
PRO
3
190
Oracle Database Security 詳細解説
oracle4engineer
PRO
1
250
【Oracle AI SPOTLIGHT ウェビナー】事例から見る!なぜOCIが選ばれたのか ― AI時代のクラウド戦略を紐解く ―
oracle4engineer
PRO
2
150
Oracle Cloud Infrastructure:2026年10月度サービス・アップデート
oracle4engineer
PRO
1
270
Kubernetesで作るLLM推論基盤(OCHaCafe Season 12 #1)
oracle4engineer
PRO
1
200
【Oracle AI Spotlight ウェビナー】AI活用を支えるデータ基盤とは ― いま押さえておきたい Oracle AI Database 26ai の注目機能
oracle4engineer
PRO
0
140
kagent で Kubernetes 運用を考える
oracle4engineer
PRO
1
510
Other Decks in Technology
See All in Technology
新米を「売り越さない」、Aurora DSQLで作る在庫ゼロ死守の限定ドロップEC
yama3133
0
170
Active Directory と Entra ID のむむむな関係
murachiakira
PRO
2
920
生成AI時代のIAMのマニアックな話
takuros
2
300
Strands Decider 2BでAWSアップデートの目利きをしてみた
sato4mi
1
100
コードレビューをなくして見えたもの
henteko
0
130
kaonavi Tech Night#2
kaonavi
0
110
PostgreSQL オプティマイザ統計の秘密
nori_shinoda
0
310
SLOを阻む不安
sraku2159
0
220
AIエージェント統制はAPIから——押さえるべき5つの要素
nagix
0
120
公共システムAdventCalendar2026
toru_kubota
0
150
視野はAIに、視座は人に / ai-for-breadth-humans-for-perspective
nkzn
6
3k
増え続けるプロダクトの品質をどう担保するか。ProductSpecとTypeScriptによる取り組み
joere
3
380
Featured
See All Featured
What does AI have to do with Human Rights?
axbom
PRO
1
2.5k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
970
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.4k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
A better future with KSS
kneath
240
18k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
560
Designing Powerful Visuals for Engaging Learning
tmiket
1
630
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
600
Marketing to machines
jonoalderson
1
6k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.3k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
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