Slide 1

Slide 1 text

"AKSのアップグレードに失敗しない漢"への道 イオンスマートテクノロジー株式会社 DevSecOps Div. 齋藤光 マネージドKubernetes運⽤戦記 − AKS‧GKE‧EKS、それぞれのリアルと最適解 2025年12⽉16⽇

Slide 2

Slide 2 text

⾃⼰紹介

Slide 3

Slide 3 text

⾃⼰紹介 齋藤 光( @hikkie13 ) イオンスマートテクノロジー株式会社(2022/5⼊社) DevSecOps Div ディレクター ⼊社以来、SREを組織にインストールすることに従事 “Kubernetesのアップグレードに失敗しない漢” SRE NEXT 2025に登壇しました

Slide 4

Slide 4 text

会社紹介

Slide 5

Slide 5 text

イオングループ紹介 - 関連数字 https://www.aeon.info/company/ - "INFOGRAPHICS 数字で見るイオングループ"

Slide 6

Slide 6 text

会社紹介

Slide 7

Slide 7 text

iAEONアプリについて 膨⼤なIDと購買データを集約したアプリ「iAEON」 iAEONはイオングループが提供する決済機能やポイントプログラムを1つにまとめたアプリです。 イオングループ内の多数の事業会社がもつ顧客IDを⼀つのアプリに統合しています。

Slide 8

Slide 8 text

iAEONアプリについて 膨⼤なIDと購買データを集約したアプリ「iAEON」 iAEONはイオングループが提供する決済機能やポイントプログラムを1つにまとめたアプリです。 イオングループ内の多数の事業会社がもつ顧客IDを⼀つのアプリに統合しています。

Slide 9

Slide 9 text

Agenda • アップグレード戦略 • チューニングポイント • つまずき事例 • 今後 • まとめ

Slide 10

Slide 10 text

AKSアップグレード戦略

Slide 11

Slide 11 text

基本的なアップグレード戦略(バージョン) • minorバージョン(x.y.zのy)のn-2がサポート対象 o つまり約半年に1回アップグレードを実施している o 当社は有史以来アップグレードを継続して実施してきた(えらい) 原則的にMicorsoft社の推奨に従う。 Azure Kubernetes Service (AKS) でサポートされている Kubernetes のバージョン

Slide 12

Slide 12 text

基本的なアップグレード戦略(バージョン) • patch(x.y.zのz)のアップグレードも原則実施 o ここは自動アップグレード(aksManagedAutoUpgradeSchedule: patch) • Long Term Supportを利用しているか? https://learn.microsoft.com/ja-jp/azure/aks/long-term-support o 利用しない方針 o ツール(オブザーバビリティツールなど)への影響を考えたくない o 1回のアップグレードでの差分が大きくなるのでリスクが大きくなる o 普通に新機能を使いたい

Slide 13

Slide 13 text

• ⼀般的に、in-placeとblue/greenの2つの⽅式がある。 o in-place § 同⼀クラスタ内でRolling Upgradeをする § ノードの作成、削除が発⽣する。その際に、podなどが退避される。 o blue/green § 新しいバージョンのクラスタを 作成しトラフィックを切り替え アップグレードの実施⽅法(切替) https://learn.microsoft.com/ja-jp/azure/architecture/guide/aks/blue-green-deployment-for-aks

Slide 14

Slide 14 text

• ASTでは、クラスタによって実施⽅法を分けている。 • 原則はin-placeに寄せてきている in-placeとblue/greenの選択するための比較軸 アップグレードの実施⽅法(切替) ⽅式 in-place blue/green 作業コスト ○ ×(クラスタの構築、トラフィック切替の準備) 切替時間 △(アプリケーションの起動時間やクラ スタの設定次第) ○(当⽇切り替えるだけ。加重ルーティングの 設定次第だが、⼀般的にin-placeよりは早い) Rollbackの可否 × ○ 切り替えの制約 ×(1バージョンずつ) ○ 作業時の サービス影響 △(退避時に一時的にキャパシティが落ち る) ○

Slide 15

Slide 15 text

失敗しない漢になるためのチューニングポイント

Slide 16

Slide 16 text

失敗しない漢になるためのチューニングポイント cluster/pod周りに関する設定 • max surge sizeの設定 (ノード サージ アップグレードのカスタマイズ) o Microsoftの推奨は33%だが、慎重めに10%で設定。 • pdbの設定 o maxUnavailable:10%で設定 • graceful shutdown/prestop hookの設定 • 参考: アップグレードを最適化してパフォーマンスを改善し、中断を最⼩限に抑える

Slide 17

Slide 17 text

patchバージョンの⾃動アップグレード設定の注意点 • 細かい拒否設定ができない。 • 最低4hの枠を設定しなければならない。 • 設定した枠の間にメンテナンスが完了するわけではなく、その枠のどこかでアップグレー ドが開始される。 • 事前のメンテナンス通知はない。 • ベストエフォートのため、緊急で適⽤されてしまう可能性はあり。 https://learn.microsoft.com/ja-jp/azure/aks/planned-maintenance 失敗しない漢になるためのチューニングポイント

Slide 18

Slide 18 text

⼩ネタ: ⾃動アップグレードと⼿動アップグレードの違い 失敗しない漢になるためのチューニングポイント ⾃動: ノードプールを1つずつアップグレード ⼿動: 並列で同時にアップグレード AKS(Azure Kubernetes Service)のUpgrade時の微妙な違いを把握する

Slide 19

Slide 19 text

失敗しない漢になるまでのつまずき事例

Slide 20

Slide 20 text

つまずき(1): アップグレード以前に⾊々な伸び代が‧‧‧ • probe設定が⾜りてなくてエラーポコポコ • graceful shutdownしていないのでエラーポコポコ • 使われていないアプリケーションが放置されているため起動せず、アップグレード失敗 • デフォルトで1台ずつsurgeしていたためクラスターの台数が多いと時間が⾮常にかかる。 • pdbの設定がされていないのでエラーポコポコ • 設定したpdbが邪魔をしてアップグレード進まない。 アップグレードに関係ない、運⽤上の改善ポイントも多かった

Slide 21

Slide 21 text

つまずき(2): 使⽤していないクラスターにアプリが‧‧‧ • blue/greenで、古い⽅のクラスターからアプリを削除せず停⽌ → クラスターを起動した際に 古いバージョンのjob系のアプリケーションが起動して障害に😇

Slide 22

Slide 22 text

つまずき(3): Docker Hubのrate limitに引っかかる • Docker Hubのrate limitは以前より⾏われていたが、Microsoft社とDocker社間の契約に より暫く影響がなかったものの、2024年に終了。 • その後のアップグレードのタイミングでDocker Hubからpullしていたイメージが軒並み失 敗に😇 • 対処: Docker Hubのrate limit対策としてACRのキャッシュ機能を活⽤する

Slide 23

Slide 23 text

AKSと歩む今後

Slide 24

Slide 24 text

ワイ的AKSの好きな所 • アップグレードの前に潜在的な問題がないかチェックする機能がある • 「問題の診断と解決」から、廃⽌予定APIなど確認が可能 • 失敗した際のリトライ⼿順がSR起票前に提⽰される

Slide 25

Slide 25 text

今後の期待(1) : Fleet Manager Approval gates for update runs[Public Preview] • Fleet Manager… 複数のAKSクラスターをまとめて管理する機能 • ステージ設定をすることでアップグレードを段階的に実施設定できる • これまでは次のステージに進むまでの待ち時間設定のみだったが、承認ゲート機能が追加 ここに承認ゲート機能が追加される Azure Kubernetes Fleet Manager を使用して再利用可能な更新戦略を定義する

Slide 26

Slide 26 text

今後の期待(2) : AKS Automaticという選択肢 • 2025/9にGA • Microsoft社の考えるベストプラクティスが事前設定済みのAKSクラスターを提供 Microsoft Ignite 2025のまとめ〜AKS編〜

Slide 27

Slide 27 text

今後の期待(2) : AKS Automaticという選択肢 参考: クラスター作成時の画⾯の違い Standard Automatic 選択肢がほぼないUpgradeの設定 認証認可の選択肢はない

Slide 28

Slide 28 text

まとめ: アップグレードの練度を上げるために

Slide 29

Slide 29 text

まとめ: アップグレードの練度を上げるために • アップグレードそのものよりも普段の運⽤を改善できているか?に⽬を向けることでアッ プグレードに対する不安を解消する o オブザーバビリティ、 IaC 、クラスター設定、 manifest file 、 CI/CDパイプライン o 失敗、問題の検知 o いざとなれば作り直せる⼤⼈の余裕 • 適切にマネージドサービスの進化に乗っていく • 組織やサービスのスケールのために⾃動アップグレードを前提として、上記に継続的に取 り組む

Slide 30

Slide 30 text

• イオンスマートテクノロジーで実践しているAKSアップグレード戦略 • AKS Engineering Blog • AKS Roadmap • AKS Youtube • Microsoft Ignite 2025のまとめ〜AKS編〜 • Microsoft Ignite 2025のまとめ〜AKS編2〜 参考資料

Slide 31

Slide 31 text

告知

Slide 32

Slide 32 text

告知(1) https://aeon.connpass.com/event/375097/

Slide 33

Slide 33 text

告知(2): 初のカンファレンススポンサーをやります! https://2026.srekaigi.net/session/hall-1420

Slide 34

Slide 34 text

募集しています!