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
82
Kubernetes超入門
2023/01に行われた社内 AI技術勉強会の発表資料
Takashi Suzuki
January 01, 2023
Tweet
Share
More Decks by Takashi Suzuki
See All by Takashi Suzuki
到着予想時間サービスの特徴量のニアリアルタイム化
t24kc
0
74
AI予約サービスのMLOps事例紹介
t24kc
0
14
MLプロジェクトのリリースフローを考える
t24kc
0
7
GOの機械学習システムを支えるMLOps事例紹介
t24kc
0
53
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
t24kc
0
21
GOの実験環境について
t24kc
0
14
MOVの機械学習システムを支えるMLOps実践
t24kc
0
11
タクシー×AIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて
t24kc
0
25
MOV お客さま探索ナビの GCP ML開発フローについて
t24kc
0
11
Other Decks in Technology
See All in Technology
Mobbing Practices
kawaguti
PRO
3
340
Aurora_BlueGreenDeploymentsやってみた
tsukasa_ishimaru
1
120
WHOLENESS, REPAIRING, AND TO HAVE FUN: 全体性、修復、そして楽しむこと
snoozer05
PRO
3
3.6k
話題のGraphRAG、その可能性と課題を理解する
hide212131
0
150
新卒1年目が向き合う生成AI事業の開発を加速させる技術選定 / ai-web-launcher
cyberagentdevelopers
PRO
3
840
オニオンアーキテクチャで実現した 本質課題を解決する インフラ移行の実例
hryushm
13
2.7k
よくわからんサービスについての問い合わせが来たときの強い味方 Amazon Q について
kazzpapa3
0
140
Databricksで構築する初めての複合AIシステム - ML15min
taka_aki
2
1.3k
なんで、私がAWS Heroに!? 〜社外の広い世界に一歩踏み出そう〜
minorun365
PRO
1
540
ガチ勢によるPipeCD運用大全〜滑らかなCI/CDを添えて〜 / ai-pipecd-encyclopedia
cyberagentdevelopers
PRO
2
140
2024-10-30-reInventStandby_StudyGroup_Intro
shinichirokawano
1
230
グローバル展開を見据えたサービスにおける機械翻訳プラクティス / dp-ai-translating
cyberagentdevelopers
PRO
1
110
Featured
See All Featured
Thoughts on Productivity
jonyablonski
67
4.3k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
280
Become a Pro
speakerdeck
PRO
24
4.9k
Teambox: Starting and Learning
jrom
132
8.7k
Practical Orchestrator
shlominoach
186
10k
Designing the Hi-DPI Web
ddemaree
280
34k
Git: the NoSQL Database
bkeepers
PRO
425
64k
Art, The Web, and Tiny UX
lynnandtonic
296
20k
Fireside Chat
paigeccino
32
3k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.8k
The Cost Of JavaScript in 2023
addyosmani
45
6.2k
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