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
Takashi Suzuki
January 01, 2023
Technology
0
150
Kubernetes超入門
2023/01に行われた社内 AI技術勉強会の発表資料
Takashi Suzuki
January 01, 2023
Tweet
Share
More Decks by Takashi Suzuki
See All by Takashi Suzuki
到着予想時間サービスの特徴量のニアリアルタイム化
t24kc
0
160
AI予約サービスのMLOps事例紹介
t24kc
0
25
MLプロジェクトのリリースフローを考える
t24kc
0
15
GOの機械学習システムを支えるMLOps事例紹介
t24kc
0
130
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
t24kc
0
38
GOの実験環境について
t24kc
0
21
MOVの機械学習システムを支えるMLOps実践
t24kc
0
25
タクシー×AIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて
t24kc
0
42
MOV お客さま探索ナビの GCP ML開発フローについて
t24kc
0
17
Other Decks in Technology
See All in Technology
プロダクト開発と社内データ活用での、BI×AIの現在地 / Data_Findy
sansan_randd
0
180
ラスベガスの歩き方 2025年版(re:Invent 事前勉強会)
junjikoide
0
190
生成AI時代のPythonセキュリティとガバナンス
abenben
0
140
IBC 2025 動画技術関連レポート / IBC 2025 Report
cyberagentdevelopers
PRO
2
180
「タコピーの原罪」から学ぶ間違った”支援” / the bad support of Takopii
piyonakajima
0
150
[re:Inent2025事前勉強会(有志で開催)] re:Inventで見つけた人生をちょっと変えるコツ
sh_fk2
0
220
SRE × マネジメントレイヤーが挑戦した組織・会社のオブザーバビリティ改革 ― ビジネス価値と信頼性を両立するリアルな挑戦
coconala_engineer
0
260
AWS DMS で SQL Server を移行してみた/aws-dms-sql-server-migration
emiki
0
240
Kubernetes self-healing of your workload
hwchiu
0
550
QA業務を変える(!?)AIを併用した不具合分析の実践
ma2ri
0
150
AIとともに歩んでいくデザイナーの役割の変化
lycorptech_jp
PRO
0
890
SCONE - 動画配信の帯域を最適化する新プロトコル
kazuho
1
380
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
130k
Unsuck your backbone
ammeep
671
58k
GraphQLとの向き合い方2022年版
quramy
49
14k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
The Language of Interfaces
destraynor
162
25k
How to Think Like a Performance Engineer
csswizardry
27
2.1k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Six Lessons from altMBA
skipperchong
29
4k
Product Roadmaps are Hard
iamctodd
PRO
55
11k
Transcript
Mobility Technologies Co., Ltd. MLエンジニアリンググループ 鈴木 隆史 Kubernetes超入門
Mobility Technologies Co., Ltd. • Kubernetesが必要になった背景 • Kubernetesのアーキテクチャ • Kubernetesの主要コンポーネント
今日話すこと 2
Mobility Technologies Co., Ltd. Kubernetesが 必要になった背景 01 3
Mobility Technologies Co., Ltd. クラウド業界を取り巻くインフラの遷移 4
Mobility Technologies Co., Ltd. • 物理マシンは調達から運用までが大変 • 仮想マシンもお手軽じゃない(起動時間、無駄なリソースの利用) • コンテナ技術の登場
◦ Immutable Infrastructure (Infrastructure as Code) ◦ 軽量でシンプル ◦ Portability, Agilityの向上 Dockerコンテナを利用する背景 5
Mobility Technologies Co., Ltd. • 「アプリケーションバイナリ + 周辺の実行環境」をコンテナイメージとして固める • 作成したコンテナイメージをもとに起動するため、基本的にどこでも同じように実行
される e.g. Ubuntu 22.04 + Nginx server, Alpine 3.15+ Go application • 軽量でシンプル・高速起動・低オーバーヘッド・可搬性・Immutable Infrastructure Dockerコンテナとは 6 FROM golang:1.19.0-alpine3.15 COPY main.go ./ RUN go build ./main.go -o main ENTRYPOINT [“main”, “--args”, “$ARG;”]
Mobility Technologies Co., Ltd. Dockerの問題点 7 Orchestrationツール無しでDockerを本番環境で導入するにはハードルが高い これらの問題点を解決するのがKubernetes
Mobility Technologies Co., Ltd. • コンテナをいい感じに起動させるオープンソースのコンテナオーケストレータ • Google社内で利用されていたBorgが元になっている • Docker
swarm等の他のツールもあったが、現在はk8sがデファクトスタンダード • CNCFによってホスティングされている Kubernetesとは 8 ・複数Dockerホストの管理 ・コンテナのスケジューリング ・Autoscaling ・Rolling Update ・コンテナの死活監視 ・障害時のセルフヒーリング ・Load Balancing ・データや機密情報の管理 同じようなことをk8sを利用せずに0から作るのは大変
Mobility Technologies Co., Ltd. Serverless vs Kubernetes 9
Mobility Technologies Co., Ltd. Cloud FunctionsやApp Engine • コンテナベースではないので、local開発でエミューレータが必要 •
スケールしてくると結構大変 • コードだけでなく、Managed Service側も熟知する必要あり • 言語の種類やバージョンが限定、他にも色々制約あり Cloud Run • GUIベースが前提 • Terraformで管理しようとすると逆に大変 • 少人数でスモールスタートするにはいい選択肢 • 最近は解消されてきているが、色々制約もある Serverless vs Kubernetes 10
Mobility Technologies Co., Ltd. • クラウドネイティブコンピューティング技術を推奨する非営利団体 • 「コンテナ技術の推進」と「テクノロジー業界」との足並みを揃えることを目的 • The
Linux Foundationのサブプロジェクト Cloud Native Computing Foundation(CNCF) 11
Mobility Technologies Co., Ltd. クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどの近 代的でダイナミックな環境において、スケーラブルなアプリケーションを構築および実行するため の能力を組織にもたらします。 このアプローチの代表例に、コンテナ、サービスメッシュ、マイクロ サービス、イミュータブルインフラストラクチャ、および宣言型APIがあります。 これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実現します。
こ れらを堅牢な自動化と組み合わせることで、エンジニアはインパクトのある変更を最小限の労力 で頻繁かつ予測どおりに行うことができます。 Cloud Native Computing Foundationは、オープンソースでベンダー中立プロジェクトのエコシス テムを育成・維持して、このパラダイムの採用を促進したいと考えてます。 私たちは最先端のパ ターンを民主化し、これらのイノベーションを誰もが利用できるようにします。 Cloud Nativeとは 12 参考: https://github.com/cncf/toc/blob/main/DEFINITION.md
Mobility Technologies Co., Ltd. • リソース効率の向上により、少ないサーバーで同じ数のサービスが実行可能 • より高い開発スピードが実現可能となり、低リスクで迅速なサービス改善 • マルチクラウドとハイブリッドクラウドの実現
Cloud Nativeのメリット 13 ・疎結合なシステム ・回復性がある ・管理しやすい ・過観測である ・堅牢な自動化により、最小限の労力で 頻繁かつ期待通りに変更が可能
Mobility Technologies Co., Ltd. 1. コンテナ化 2. CI/CD 3. オーケストレーション&アプリケーション定義
4. 過観測性&分析 5. サービスプロキシ、ディスカバリ&メッシュ 6. ネットワーク、ポリシー&セキュリティ 7. 分散データベース&分散ストレージ 8. ストリーミング&メッセージング 9. コンテナレジストリ&ランタイム 10. ソフトウェアディストリビューション Cloud Nativeになるためのステップ 14 すべて対応する必要はなく、状況に応じて適時対応すれば良い
Mobility Technologies Co., Ltd. • サービス提供を迅速に一貫した環境で行うためにコンテナ技術に注目が集ま る • そのコンテナの管理にKubernetesが利用される •
組織のフェーズによって、Serverlessとは棲み分け • Cloud Nativeな状態を目指し、その選択肢の一つがKubernetes まとめ 15
Mobility Technologies Co., Ltd. Kubernetesのアーキテクチャ 02 16
Mobility Technologies Co., Ltd. • アプリケーション間でOSを共有 • 他のプロセスからは隔離されたプロセス実行環境 コンテナ開発のメリット(おさらい) 17
Mobility Technologies Co., Ltd. • Cluster:Nodeの集合 • Node:コンテナのデプロイ先VM ◦ Master
NodeとWorker Nodeから構成される • Pod:デプロイの最小単位 ◦ コンテナ間でIPやVolumeを共有 Cluster/Node/Pod 18
Mobility Technologies Co., Ltd. • Master Node:クラスタ内のPodを管理 • Worker Node:コンテナ化されたアプリケーションPodを実行
Master Node/Worker Node 19 Master Node Worker Node
Mobility Technologies Co., Ltd. • kube-apiserver ◦ APIエンドポイントとして機能 • kube-controller-manager
◦ 各種コントローラを制御 • kube-scheduler ◦ コンテナのスケジューリング • etcd ◦ k8sクラスタの構成情報を格納するKVS Master Node 20
Mobility Technologies Co., Ltd. • kubelet ◦ Podの起動・監視 • kube-proxy
◦ Serviceの仮想IPへのアクセスをPodに 転送 Worker Node 21
Mobility Technologies Co., Ltd. Kubernetesの 主要コンポーネント 03 22
Mobility Technologies Co., Ltd. Pod • デプロイできる最小のコンピューティングユニット • Pod単体で利用することはほぼない •
複数Podの管理ができ、Pod障害時の自動復旧が可能なコンテナコントロー ラーを利用する ◦ Deployment, StatefulSet, DaemonSetなど ワークロード(1/2) 23
Mobility Technologies Co., Ltd. Deployment • 理想的なコンピューティングユニットの状態を定義 ◦ レプリカ数、リソース設定値(CPU/Memory) ◦
その状態に合わせてPodが増減 • Deployment更新時にはロールアウトが実行 ◦ ロールアウト時のPodの稼働状況なども指定可能 ◦ 障害時には過去のリビジョンにロールバックできる ワークロード(2/2) 24
Mobility Technologies Co., Ltd. Service • サービスディスカバリ ◦ Podへのアクセス手段を提供 •
Serviceのタイプ ◦ ClusterIP:複数のPodを紐付けるクラスタ内仮想IPで公開 ◦ NodePort:ClusterIPをNode上の静的なポートで公開 ◦ LoadBalancer:クラウドLBを使用してServiceを外部に公開 ◦ ExternalName:指定されたコンテンツとSeviceを紐付ける 外部からのアクセス(1/2) 25
Mobility Technologies Co., Ltd. Ingress • 内部Serviceへの外部アクセスを管理する ◦ 負荷分散、SSL、名前ベースの仮想ホスティングを提供 外部からのアクセス(2/2)
26
Mobility Technologies Co., Ltd. Volume • 外部リソースをコンテナにマウント • Volumeのタイプ ◦
emptyDir Volume:Node上に領域を確保、Podが削除されると廃棄 ◦ Persistent Volume:ネットワークストレージと接続、永続化 • GCE永続ディスクやAWS EBSなどとも接続可 ストレージ(1/1) 27
Mobility Technologies Co., Ltd. ConfigMap • 機密性のないデータをキーと値のペアで保存する • ローカルやクラウドごとに差異がある環境変数の管理などで利用 •
プレーンテキストで格納される Secret • 機密性のあるデータをキーと値のペアで保存する • base64エンコードで格納される • ともに環境変数や、Volumeマウントして利用できる 設定(1/1) 28
Mobility Technologies Co., Ltd. まとめ 04 29
Mobility Technologies Co., Ltd. Kubernetesのメリット • これまでのインフラ課題はKubernetes導入によって解決できる Kubernetesの各用語 • 主要なアーキテクチャとコンポーネントについてまとめた
まとめ 30
confidential 文章·画像等の内容の無断転載及び複製等の行為はご遠慮ください。 Mobility Technologies Co., Ltd. 31