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
140
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
14
GOの機械学習システムを支えるMLOps事例紹介
t24kc
0
120
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
t24kc
0
38
GOの実験環境について
t24kc
0
19
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
Modern_Data_Stack最新動向クイズ_買収_AI_激動の2025年_.pdf
sagara
0
230
カンファレンスに託児サポートがあるということ / Having Childcare Support at Conferences
nobu09
1
470
プロポーザルのコツ ~ Kaigi on Rails 2025 初参加で3名の登壇を実現 ~
naro143
1
190
綺麗なデータマートをつくろう_データ整備を前向きに考える会 / Let's create clean data mart
brainpadpr
3
370
ガバメントクラウドの概要と自治体事例(名古屋市)
techniczna
2
210
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
9.1k
[Keynote] What do you need to know about DevEx in 2025
salaboy
0
140
Large Vision Language Modelを用いた 文書画像データ化作業自動化の検証、運用 / shibuya_AI
sansan_randd
0
130
Escaping_the_Kraken_-_October_2025.pdf
mdalmijn
0
150
Where will it converge?
ibknadedeji
0
200
E2Eテスト設計_自動化のリアル___Playwrightでの実践とMCPの試み__AIによるテスト観点作成_.pdf
findy_eventslides
1
560
10年の共創が示す、これからの開発者と企業の関係 ~ Crossroad
soracom
PRO
1
670
Featured
See All Featured
Music & Morning Musume
bryan
46
6.8k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.7k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.6k
Speed Design
sergeychernyshev
32
1.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
Building Applications with DynamoDB
mza
96
6.7k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.7k
Being A Developer After 40
akosma
91
590k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.5k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
Writing Fast Ruby
sferik
629
62k
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