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
170
Kubernetes超入門
2023/01に行われた社内 AI技術勉強会の発表資料
Takashi Suzuki
January 01, 2023
Tweet
Share
More Decks by Takashi Suzuki
See All by Takashi Suzuki
到着予想時間サービスの特徴量のニアリアルタイム化
t24kc
0
190
AI予約サービスのMLOps事例紹介
t24kc
0
37
MLプロジェクトのリリースフローを考える
t24kc
0
20
GOの機械学習システムを支えるMLOps事例紹介
t24kc
0
140
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
t24kc
0
47
GOの実験環境について
t24kc
0
37
MOVの機械学習システムを支えるMLOps実践
t24kc
0
42
タクシー×AIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて
t24kc
0
47
MOV お客さま探索ナビの GCP ML開発フローについて
t24kc
0
22
Other Decks in Technology
See All in Technology
類似画像検索モデルの開発ノウハウ
lycorptech_jp
PRO
3
890
EMからICへ、二周目人材としてAI全振りのプロダクト開発で見つけた武器
yug1224
3
390
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
5
1.1k
自動テストが巻き起こした開発プロセス・チームの変化 / Impact of Automated Testing on Development Cycles and Team Dynamics
codmoninc
1
1.1k
マネージャー版 "提案のレベル" を上げる
konifar
18
12k
「使いにくい」も「運用疲れ」も卒業する UIデザイナーとエンジニアが創る持続可能な内製開発
nrinetcom
PRO
1
780
AI時代にエンジニアはどう成長すれば良いのか?
recruitengineers
PRO
1
130
LINEアプリ開発のための Claude Code活用基盤の構築
lycorptech_jp
PRO
2
1.4k
Devinを導入したら予想外の人たちに好評だった
tomuro
0
880
技術的負債の泥沼から組織を救う3つの転換点
nwiizo
7
2.1k
Agentic Software Modernization - Back to the Roots (Zürich Agentic Coding and Architectures, März 2026)
feststelltaste
1
170
Agentic Codingの実践とチームで導入するための工夫
lycorptech_jp
PRO
0
400
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.8k
Balancing Empowerment & Direction
lara
5
930
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
310
sira's awesome portfolio website redesign presentation
elsirapls
0
180
Fireside Chat
paigeccino
42
3.8k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
950
How to Think Like a Performance Engineer
csswizardry
28
2.5k
Are puppies a ranking factor?
jonoalderson
1
3.1k
YesSQL, Process and Tooling at Scale
rocio
174
15k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
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