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を用いたクラウドネイティブ設計ポイント大全
Search
高棹大樹
February 03, 2026
Technology
740
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
高棹大樹
February 03, 2026
More Decks by 高棹大樹
See All by 高棹大樹
徹底討論!ECS vs EKS!
daitak
3
1.7k
金融システムで挑む!EKS Auto Mode導入ポイント大全
daitak
0
110
EKS CapabilitiesでKube Resource Orchestrator(KRO)を試してみた!
daitak
0
130
Kubernetesと共にふりかえる! エンタープライズシステムのインフラ設計・テストの進め方大全
daitak
0
860
金融システムをモダナイズするためのAmazon Elastic Kubernetes Service(EKS)ノウハウ大全
daitak
1
250
CBになったのでEKSのこともっと知ってもらいたい!
daitak
1
310
金融システムをモダナイズするためのAmazon Elastic Kubernetes Service(EKS)ノウハウ大全
daitak
0
270
AWS re:Invent 2024で発表されたアップデート/EKSオートモード使っていきましょう!
daitak
1
270
レガシーな金融システムをKubernetesを使ってクラウドネイティブ化するためのノウハウ大全
daitak
5
1.2k
Other Decks in Technology
See All in Technology
LayerX コーポレートエンジニアリング室におけるサプライチェーンセキュリティへの取り組み / Supply Chain Security at LayerX Corporate Engineering
yuyatakeyama
3
830
FPC(フレキシブル)基板にZephyr実装してみた。
iotengineer22
0
170
事業会社における 機械学習・推薦システム技術の活用事例と必要な能力 / ml-recsys-in-layerx-wantedly-2026
yuya4
0
160
あなたの知らないPDFのアクセシビリティ
lycorptech_jp
PRO
0
240
フィジカル版Github Onshapeの紹介
shiba_8ro
0
320
iOS アプリの「これって不具合ですか?」を AI に調べてもらう
miichan
0
140
「軸足」は 固定しなくていい - 熱量と強みで描く、しなやかなキャリアの形
kakehashi
PRO
1
260
5分でわかるDuckDB Quack
chanyou0311
3
250
AIチャットの改善から見えた、良いAI体験とは / What Constitutes a Good AI Experience: Insights from Improving AI Chat
kubode
0
120
GitHub Copilot 最新アップデート – 「一歩先」の実践活用術
moulongzhang
5
1.7k
本当の”仕事”を手放せる未来が見えた
mu7889yoon
0
110
AIのReact習熟度を測る
uhyo
2
680
Featured
See All Featured
Ethics towards AI in product and experience design
skipperchong
2
310
Joys of Absence: A Defence of Solitary Play
codingconduct
1
400
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
590
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
300
The browser strikes back
jonoalderson
0
1.3k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
310
Mobile First: as difficult as doing things right
swwweet
225
10k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
66
55k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
190
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
240
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Transcript
インフラエンジニア必見! Kubernetesを用いた クラウドネイティブ設計ポイント大全 Tech Challenge Party 2026 2026年2月4日 株式会社 野村総合研究所
マルチクラウドインテグレーション事業本部 金融基盤サービス部 エキスパートアーキテクト 高棹 大樹
1 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
高棹 大樹 – Daiki Takasao NRI 金融基盤サービス部 • Elastic Kubernetes Service(EKS)を用いた金融機関 様向けマイクロサービス共通基盤 のインフラ担当 主な仕事 趣味 最近の困り事 • キャンプ • 筋トレ • 子供と遊ぶ(相手をしてくれる内に。。) • 飼っている猫が懐いてくれない
2 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
NRIの会社紹介 使命 創発する社会 私たちの価値観 企業理念 社会に対して 新しい社会のパラダイムを洞察し、その実現を担う お客様に対して お客様の信頼を得て、お客様とともに栄える 夢と可能性に満ち、豊かさを実感する、 活力ある社会 人々の英知がつながり、 環境にやさしい持続可能な社会 強くてしなやかな、安全で安心に満ちた社会 先見性と緻密さで、期待を超える 多彩な個が互いに尊重し、志をひとつにする 情熱と誇りを胸に、あくなき挑戦を続ける コーポレート・ステートメント
3 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
NRIグループ4つの事業 NRIの会社紹介 コンサルティング CONSULTING 創業以来、シンクタンクとしての深い知見と先見性を活かし、官民の様々な分野で戦略策 定・政策立案を支援してきました。また、政策・産業・事業・技術への深い理解とお客様との 対話を通じ、課題解決に向けた施策を提案し、伴走しています。 AIをはじめとする技術革新が加速し、社会や市場の変化が予測困難となる今、ビジネスを 次のステージへと導くには、先見性に裏付けられたマネジメントコンサルティング、 先進技術で事業・業務革新を加速するシステムコンサルティング、 それらを統合する実行力が不可欠です。 未来を見据え、今を変えることで、 お客様の最良のパートナーであり続けることを目指します。 NRIグループはコンサルティングやさまざまなITソリューションの提供を通じて、 社会や産業を確かな明日へ導くとともに、世界中のお客様と新しい価値を共創しています。 金融ITソリューション FINANCIAL IT SOLUTIONS NRIグループは、金融ビジネスを取り巻く環境変化を高い洞察力で捉える研究員や コンサルタント、ITソリューションサービスを提供するビジネスアナリストやデジタル人材の連携に よって次世代ソリューションを提供し続け、金融機関の事業継続を多方面から支えています。 近年は、金融機関や政策当局、異業種プレーヤーなどとの価値共創により、 金融機能の変革に取り組んでいます。金融は、社会の重要インフラです。 進化し続けるデジタル技術との相性を常に考えながら、 安定かつ先進的な社会インフラを実現し、 社会課題に果敢にチャレンジしていきます。 産業ITソリューション INDUSTRIAL IT SOLUTIONS 産業分野の業界トップ企業のビジネスパートナーとして、コンサルティングからシステム開発や運 用まで、一貫したサービスを提供しています。 コンサルタントとエンジニアが共同でお客様のビジネス環境やデータを分析しながら、最適なIT ソリューションを提供しています。また、コンサルティング部門から運用部門まで、NRIグループの リソースをインテグレーションし、お客様のデジタル戦略を柔軟かつスピーディーに 実現します。 長年にわたってミッションクリティカルなシステムを構築・運用してきた 経験と実績で、これからもお客様の事業インフラとしてのシステム基盤を 支えていきます。 IT基盤サービス IT PLATFORM SERVICES IT技術の革新が加速する中、巨大化・複雑化が進むITシステム基盤の重要性が増しています。 NRIグループは先進的な技術を見通し、戦略的にサービスやソリューションに取り入れ、お客 様の成長や変革の実現をサポートします。先進技術の調査・研究やAI技術の活用も積極 的に実施しています。また、マルチクラウドを含むシステム全体を運営するマネージドサービスや お客様の働く環境を創り出すデジタルワークプレイス事業などを展開しています。 さらに、高度化するサイバー脅威に対応するデジタルトラスト事業やお客様が 直面するセキュリティ課題の解決、総合的なセキュリティレベルの向上を 支援しています。
4 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
近年エンタープライズシステムでもKubernetesの利用は増えている 可搬性、拡張性を求めて コンテナベースのシステム開発 Kubernetesはとっつきづらい、 学習コストが高いという声をよく聞きます コンテナ管理にKubernetesを採用
5 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
確かにKubernetesには知らなきゃいけないことが色々ある。。 Kubernetesの概要と、Kubernetesを使って システム構築する際のインフラ設計のポイントを解説します! 理解してしまえば様々な環境で使えるポータブルスキル! 学習する価値はある! マニフェスト? Pod? なにそれ。。。。
6 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
アジェンダ Kubernetesが行う役割・特徴 01 Kubernetesの主要コンポーネント 02 Kubernetesのインフラ設計ポイント 03
7 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
◼聴いて頂きたい方 ⚫ Kubernetesに興味がある方 ⚫ システムのインフラ設計・構築経験はあるもののKubernetesはこれから学習される方 ◼注意事項 ⚫ ITインフラを設計する上で必要な考慮点・設計ポイントが網羅されている訳では無い点ご了承ください 聴いて頂きたい方・注意事項
8 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
Copyright (C) Nomura Research Institute, Ltd. All rights reserved. 8 1. Kubernetesが行う役割・特徴
9 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
Kubernetesって何? 1. Kubernetesが行う役割・特徴 ◼コンテナ化されたアプリケーションを自動で配置・スケーリング・管理するためのオーケストレーション プラットフォーム ◼元々Google で開発され、現在は CNCF(Cloud Native Computing Foundation) が運 営している ◼略してK8s
10 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
役割①: コンテナの配置管理 1. Kubernetesが行う役割・特徴 サーバ コンテナA サーバ サーバ コンテナB コンテナA コンテナをどのサーバ上で稼働させるのかを判断・管理する コンテナC 障害が発生してもコンテナの機能提供を継続するために、同一種類のコンテナを複数稼働させる Kubernetes
11 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
役割②: 障害発生時の退避・自動復旧 1. Kubernetesが行う役割・特徴 コンテナA コンテナB コンテナA コンテナC 障害が発生したコンテナを復旧する コンテナB コンテナA サーバに障害が発生した際、そのサーバ上で稼働していたコンテナを他のサーバに退避する Kubernetes サーバ サーバ サーバ
12 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
役割③: コンテナのリソース拡張・アップデート管理 1. Kubernetesが行う役割・特徴 コンテナA コンテナB コンテナA 問合せ量の増加等を契機として、コンテナのリソースを自動拡張する コンテナC コンテナのローリングアップデートのために、一連のコンテナの停止とデプロイの作業を、順序を守って実施する コンテナB NEW Kubernetes サーバ サーバ サーバ
13 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
役割③: コンテナのリソース拡張・アップデート管理 1. Kubernetesが行う役割・特徴 コンテナA コンテナB コンテナA 問合せ量の増加等を契機として、コンテナのリソースを自動拡張する コンテナC コンテナのローリングアップデートのために、一連のコンテナの停止とデプロイの作業を、順序を守って実施する コンテナB NEW Kubernetes サーバ サーバ サーバ コンテナ数が少なければ手動作業できるが、 増えると困難。。 Kubernetesは自動で実施してくれる!
14 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
特徴①: 様々な形態で導入可能 1. Kubernetesが行う役割・特徴 Kubernetes オンプレミス Kubernetes パブリッククラウド 様々なパブリッククラウド、オンプレミスでKubernetesを導入可能 Kubernetes上で構築したコンテナのシステム構成は、 他のパブリッククラウドやオンプレミス環境へ比較的容易に移行・展開が可能 ※クラウド固有のサービスに依存する部分を除く
15 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
特徴②: マニフェストによるリソース定義 1. Kubernetesが行う役割・特徴 apiVersion: v1 kind: Pod metadata: name: nginx-pod spec: containers: - name: nginx-container image: nginx:1.25 マニフェスト Kubernetes 適用 K8sリソース 望ましい状態 実際の状態 修 復 比 較 マニフェストをKubernetesに適用することで、K8sリソースが作成される NEW マニフェストで定義した望ましい状態と 実際の状態を継続的に比較し、 差分を検知した場合は自動的に修復する
16 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
特徴②: マニフェストによるリソース定義 1. Kubernetesが行う役割・特徴 Kubernetes 比 較 望ましい状態: コンテナ(Pod)が3つ 実際の状態: コンテナ(Pod)が2つ → 1つ追加 誤って 削除 NEW 起 動 Kubernetes利用者が誤って1つのPodを削除 Kubernetesは差分を検知し、 望ましい数に合せる形で自動でPodを1つ起動する
17 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
特徴③: 高い拡張性 1. Kubernetesが行う役割・特徴 プロダクト名 用途 主なカスタムリソース名 Istio サービスメッシュ VirtualService, DestinationRule, Gateway Linkerd サービスメッシュ ServiceProfile Argo CD GitOpsによる継続的デリバリー Application Prometheus Operator Kubernetesネイティブな監視 ServiceMonitor, PrometheusRule KEDA イベント駆動のオートスケーリング ScaledObject, TriggerAuthentication Argo Workflows バッチ処理・データパイプライン Workflow, CronWorkflow MongoDB Community Operator MongoDBクラスタ運用 MongoDBCommunity MySQL Operator MySQLクラスタ運用 MysqlCluster Postgres Operator PostgreSQLクラスタ運用 PostgresCluster ◼Kubernetesには豊富な種類のリソースがビルトインで揃っている ◼それらに加えて、独自のリソース(カスタムリソース)を定義できる ◼多数のカスタムリソースが開発されており、Kubernetesを中心とした大きなエコシステムを形成し ている
18 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
Copyright (C) Nomura Research Institute, Ltd. All rights reserved. 18 2. Kubernetesの主要コンポーネント
19 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
Pod名: mypod IPアドレス:1111.2222.3333.4444 コンテナ ・Pod内には1つ以上のコンテナ ・Pod内のコンテナ間は localhostで通信可能 localhost コンテナ ・ ・ ・ 代表的なリソース①: Pod 2. Kubernetesの主要コンポーネント ヘルス チェック Probe Liveness Probe(コンテナ生存確認) Readiness Probe (コンテナによるサービス提供可否確認) Startup Probe(コンテナ起動確認) Probeは稼働するコンテナのヘルスチェックを行い、 異常検知時に自動修復を行う リソース容量設定 最低保証値 (Requests) 上限値(Limits) コンテナに割り当てるリソース容量は2段階で指定可能
20 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
代表的なリソース②: ReplicaSet 2. Kubernetesの主要コンポーネント ReplicaSet名: myreplicaset Podの数:4 削除 /異常終了 Pod数4つを維持 Podが削除されるか異常終了した場合、 自動的に新しいPodを作成してPod数を維持する NEW
21 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
Deployment名: mydeployment Podの数:4 ReplicaSet名:mydeployment -YYY NEW 新バージョンのReplicaSet 新しいPodをリリースする際、Deploymentは新しいReplicaSetを作成する 代表的なリソース③: Deployment 2. Kubernetesの主要コンポーネント ReplicaSet名:mydeployment -XXX 古いReplicaSetと新しいReplicaSetが管理するPodの数を徐々に変化させる事でローリングアップデートを行う 削除 NEW 削除 NEW 削除 NEW
22 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
代表的なリソース④: Service(ClusterIP) 2. Kubernetesの主要コンポーネント Deployment名: mydeployment Podのラベル: app: myapp ラベル app: myapp ラベル app: myapp ラベル app: myapp Service名:myservice type:ClusterIP 振り分け先のPodのラベル: app: myapp 紐付け 仮想IPアドレス/DNS名 ClusterIPとは、安定した仮想IPアドレスとDNS名を提供し、 一貫したネットワークアクセスを実現する仮想的なエンドポイント ClusterIPに対する問合せはラベルで紐付けられた複数のPodに振り分けられる
23 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
Kubernetesクラスタの構成要素 2. Kubernetesの主要コンポーネント Kubernetesクラスタ ワーカーノード(データプレーン) ・・・ リソースを稼働させるサーバ群 コントロールプレーン リソースを管理
24 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
コントロールプレーン kube-apiserver (コントロールプレーンのフロントエンド) 認 証 認 可 内容 検証 リソース状態取得 /作成/更新 Kubernetes API 問合せ Kubernetesクラスタの構成要素①: コントロールプレーン 2. Kubernetesの主要コンポーネント Kubernetesクラスタ ワーカーノード (データプレーン) ・ ・ ・ Kubernetes クラスタ利用者 外部システム kube-scheduler (Pod の配置管理(スケジューリング)を実行) ノード未割り当 てPod検知 スケジューリング ノード割り当て 情報更新 ウォッチ kube-controller-manager (リソースを望ましい状態に収束させる) ノード/リソース 状態監視 調整のための リソース 作成/更新 ウォッチ etcd (全リソースの状態を保持する Key-Valueストア) リソースの 状態保持
25 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
Kubernetesクラスタの構成要素②: ワーカーノード(データプレーン) 2. Kubernetesの主要コンポーネント Kubernetesクラスタ コントロールプレーン ワーカーノード(データプレーン) ・・・ etcd kube-apiserver ウォッチ Service/EndpointSlice 状態監視 転送ルール 再構成 kube-proxy (問合せをPodへ転送するネットワークプロキシ) Iptables /IPVS Pod仕様取得 Pod 起動/停止 Kubelet (Pod のライフサイクルを管理するエージェント) ノード/Pod 稼働状態報告 ウォッチ
26 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
Copyright (C) Nomura Research Institute, Ltd. All rights reserved. 26 3. Kubernetesのインフラ設計ポイント
27 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
Elastic Kubernetes Service(EKS)とは? 3. Kubernetesのインフラ設計ポイント ◼AWSのマネージドKubernetesサービス ◼コントロールプレーンの管理が不要、 IAMユーザ/ロールによる認証などが主なメリット ワーカーノード(データプレーン) リソースを稼働させるサーバ群 コントロールプレーン リソースを管理 ・・・ コントロールプレーンの 管理が不要 IAMユーザ/ロールによる 認証
28 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
①耐障害性設計: Probeのヘルスチェック設計 3. Kubernetesのインフラ設計ポイント ◼Podを安定稼働させるためには、ヘルスチェック機能であるProbeを適切に設定する必要あり パラメータ 説明 tcpSocket/httpGet.scheme ヘルスチェックのプロトコル httpGet.path ヘルスチェックのパス periodSeconds ヘルスチェックを行う間隔 failureThreshold ヘルスチェックが何回NGであればコンテナに障害が発生したとみなすか timeoutSeconds ヘルスチェックのタイムアウト Probeのパラメータの一部
29 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
①耐障害性設計: Probeのヘルスチェック設計 3. Kubernetesのインフラ設計ポイント ◼ プロトコルは原則業務通信と同一 ◼ パスはコンテナの正常稼動を確認できるもの ヘルスチェック𝑵𝑮の回数 − 𝟏 × ヘルスチェックの間隔 + ヘルスチェックのタイムアウト + 障害コンテナの復旧動作に掛る時間 コンテナ障害発生から 復旧動作完了までの最大時間 ◼ 障害復旧の目標時間に収まる様に、 ヘルスチェックの間隔、ヘルスチェックNGの回数、 ヘルスチェックのタイムアウト値を検討
30 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
①耐障害性設計: Podの分散配置 3. Kubernetesのインフラ設計ポイント ◼ ワーカーノードをマルチAZ構成で配置(EKSノードグループにマルチAZなサブネットを複数指定) ◼ Podを複数台起動させるだけでは不十分。偏る可能性あり。topologySpreadConstraintsを設定してワーカーノー ド、AZ間で分散配置する アプリケーション ClusterIP Service アプリケーションPod アプリケーションコンテナ サイドカーコンテナ Availability Zone1 Availability Zone2 アプリケーションPod topologySpreadConstraints - AZ - ワーカーノード EKSワーカーノード(EC2) EKSワーカーノード(EC2) EKSワーカーノード(EC2) topologySpreadConstraintsを用いて AZ,ワーカーノード間で分散してアプリケーションPodを起動させる アプリケーションPod アプリケーションコンテナ サイドカーコンテナ アプリケーションコンテナ サイドカーコンテナ
31 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
②メンテナンス設計: Podの安全停止設定 3. Kubernetesのインフラ設計ポイント ◼Podの退避は実際にはPodが停止し、その後別ワーカーノードでPodが起動する事で実現される ◼このPodの停止時にもシステムエラーは許容できないが、Serviceの仕様上Pod停止前にリクエス トの振り分け対象から該当Podを手動で切離す事はできない EKSワーカーノード EKSワーカーノード リタイアメントで停止する必要あり ①Pod停止 ②別ワーカーノードでPod起動 Pod停止前にリクエストの振り分け対象から 該当Podを手動で切離す事はできない
32 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
②メンテナンス設計: Podの安全停止設定 3. Kubernetesのインフラ設計ポイント ◼ 受入れたリクエストの処理が完了する時間分、Podが停止を待つ設定を入れる ◼ 具体的には、アプリケーションのマニフェストファイルに、 一律でPreStopフックでsleepコマンド実行、terminationGracePeriodSecondを明示的に指定する ⚫ PreStopフックは、 コンテナが停止する前に任意のコマンドを実行できる機能 この機能を利用して、アプリPodがkubernetesのServiceから切り離され、受け取ったリクエストの処理が終了するまでの時 間コンテナ停止を待つ様にsleepコマンドを実行 ⚫ terminationGracePeriodSecondsは、Podが強制終了されるまでの時間を設定するもの Pod停止の前にリクエストの処理が完了する時間分 待つ設定を入れる PreStopフックでsleepコマンド実行 terminationGracePeriodSeconds
33 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
②メンテナンス設計: Podの安全停止設定 3. Kubernetesのインフラ設計ポイント ◼ PreStopフックのSleepコマンド実行とterminationGracePeriodSecondsの関係を図にしたものが以下 Service Pod停止開始 コンテナ強制終了 (SIGKILL) 新規リクエスト 受け入れ終了 コンテナ停止 (SIGTERM) ServiceからPodの切離し 新規リクエストの受け入れ コンテナ 処理してレスポンスを返す 新規リクエストの受け入れ PreStopフックでsleepコマンド実行 余裕値 Pod terminationGracePeriodSeconds 余裕値 apiVersion: apps/v1 kind: Deployment spec: template: spec: terminationGracePeriodSeconds: "180s" containers: - image: <コンテナイメージ名> lifecycle: preStop: exec: command: - sh - -c - "sleep 160" Deploymentマニフェストファイル
34 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
Pod アプリケーションコンテナ Limit 1,000m Limit 800Mi Limitsでコンテナに割り当てる リソースの上限を指定する ③性能設計: コンテナのリソース容量設定 3. Kubernetesのインフラ設計ポイント ◼コンテナのリソース容量設定のパラメータは2段階ある ⚫ Requests: 起動時からコンテナに確保されるリソースの最低保証値 ⚫ Limits: コンテナに割り当て可能なリソースの上限値 仮想CPU数 メモリ容量 Request 200m Request 600Mi Requestsでコンテナに確保される 最低限のリソースを指定する
35 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
③性能設計: コンテナのオーバーコミット 3. Kubernetesのインフラ設計ポイント ◼コンテナ稼動に必要なワーカーノードの台数やスペックは、Requests値の積み上げに依存 ◼Requestsを小さく設定する事で、ワーカーノードの総リソースを抑えられる ◼所謂オーバーコミットが可能 ◼オーバーコミットで、クラウド利用料を抑える事ができる ワーカーノードの総リソース 仮想CPU数:XX メモリ容量:XX 仮想CPU数:XX メモリ容量:XX 仮想CPU数:XX メモリ容量:XX 仮想CPU数:XX メモリ容量:XX 仮想CPU数:XX メモリ容量:XX Requestsで指定したコンテナの総リソース 仮想CPU数:YYメモリ容量:YY 仮想CPU数:YYメモリ容量:YY 仮想CPU数:YYメモリ容量:YY 仮想CPU数:YYメモリ容量:YY 仮想CPU数:YYメモリ容量:YY 仮想CPU数:ZZ メモリ容量:ZZ サイジングしたコンテナの総リソース 仮想CPU数:ZZ メモリ容量:ZZ 仮想CPU数:ZZ メモリ容量:ZZ サイジングしたコンテナの総リソースより、ワーカーノードの総リソースが小さい → オーバーコミット
36 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
③性能設計: オーバーコミットの許容範囲を検討する 3. Kubernetesのインフラ設計ポイント ◼オーバーコミットの許容範囲は、クラウド利用料とリソース枯渇のリスクを考慮して決める必要あり ⚫ 開発環境のオーバーコミットの度合いを本番環境よりも高める ⚫ コンテナの重要度で度合いを変化させる事で、信頼性とクラウド利用料のバランスを取る Requestsで 指定した コンテナの総リソース ワーカーノードの 総リソース サイジングした コンテナの 総リソース Requestsで 指定した コンテナの総リソース ワーカーノードの 総リソース サイジングした コンテナの 総リソース 開発環境 本番環境 開発環境のRequestsを本番環境より小さくする。 その結果必要なワーカーノードが本番環境より少なくなる。 システムの機能提供に 重要なコンテナ 仮想CPU数 メモリ容量 Limit Request Limit Request RequestsとLimitsの差を小さくする事で、 リソースが確保できないリスクを極小化する システムの機能提供に 重要でないコンテナ 仮想CPU数 メモリ容量 Limit Request Limit Request RequestsとLimitsの差を大きくする事で、 オーバーコミットの度合いを大きくする
37 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
EKSワーカーノード ④セキュリティ設計: 特権モード/Rootユーザでのコンテナ実行の禁止 3. Kubernetesのインフラ設計ポイント ◼ 特権モード、およびRootユーザでのコンテナ実行には以下のリスクがある ◼ 一般的な業務アプリケーションでは特権モード、Rootユーザでのコンテナ実行は不要 コンテナからワーカーノードOSで任意のコード実行されるリスク (いわゆるコンテナエスケープ) 脆弱性に合致する可能性、影響範囲が拡がるリスク ハッキング時の影響範囲が拡がるリスク コンテナ OS SW OS Rootユーザで実行 特権モード:有効
38 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
④セキュリティ設計: 特権モード/Rootユーザでのコンテナ実行の禁止 3. Kubernetesのインフラ設計ポイント ◼ 非Rootユーザで起動するコンテナを作成 ◼ Podマニフェストのセキュリティ設定(SecurityContext)として権限昇格を禁止する等を設定 ◼ 正しく設定されているかポリシー管理機能を使って(gatekeeper/kyverno等)apply時にチェック コンテナ イメージ FROM amazoncorretto ARG USER=1000 RUN adduser $USER USER $USER:$USER Dockerfile containers: - image: <コンテナイメージ名> securityContext: runAsNonRoot: true runAsUser: 1000 allowPrivilegeEscalation: false privileged: false capabilities: drop: ["ALL"] マニフェストファイル Gatekeeper Apply時に チェック
39 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
まとめ Kubernetesならではのインフラ設計ポイントを しっかり抑えることが重要! 「Pod」「Deployment」「Service」は 基本リソースなのでここから理解しましょう! Kubernetesは「導入形態の幅」「高い拡張性」 「マニフェストを用いた運用」に特徴があります!
40 Copyright (C) Nomura Research Institute, Ltd. All rights reserved.
Copyright (C) Nomura Research Institute, Ltd. All rights reserved. 40 SIerでもクラウドネイティブできます!!
None