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
みのるん
PRO
January 30, 2022
Technology
16
11k
コンテナって何?(Kubernetes入門)
初心者むけK8sハンズオンの補助資料です
https://qiita.com/minorun365/items/0441e4878f0984a9fc0a
みのるん
PRO
January 30, 2022
Tweet
Share
More Decks by みのるん
See All by みのるん
Oracle Cloudの生成AIサービスって実際どこまで使えるの? エンジニア目線で試してみた
minorun365
PRO
4
290
密着! Bedrockerがre:Invent 2024で過ごした5日間を紹介
minorun365
PRO
4
470
re:Inventで発表された Bedrockの新機能を色々使って、マルチRAGエージェントにクラウド選定させてみた件
minorun365
PRO
4
350
AWS re:Invent 2024登壇資料(GBL206-JA: Unleashing the power of generative AI on AWS for your business)
minorun365
PRO
7
290
【AWS re:Invent 2024】Amazon Bedrock アップデート総まとめ
minorun365
PRO
7
840
AWS re:Invent 2024 予選落ちのBedrockアプデをまとめて解説!
minorun365
PRO
2
300
2024年のAmazon Bedrockアップデート一挙おさらい 〜まだ間に合う! re:Invent直前までの重大ニュースを速習しよう〜
minorun365
PRO
3
190
AIOpsとLLMOpsってどう違うの?? ついでにLLMOpsに入門しよう!
minorun365
PRO
5
600
【令和最新版】AWS Direct Connectと愉快なGWたちのおさらい
minorun365
PRO
7
920
Other Decks in Technology
See All in Technology
継続的にアウトカムを生み出し ビジネスにつなげる、 戦略と運営に対するタイミーのQUEST(探求)
zigorou
0
630
Microsoft Azure全冠になってみた ~アレを使い倒した者が試験を制す!?~/Obtained all Microsoft Azure certifications Those who use "that" to the full will win the exam! ?
yuj1osm
2
110
Turing × atmaCup #18 - 1st Place Solution
hakubishin3
0
490
AWS re:Invent 2024で発表された コードを書く開発者向け機能について
maruto
0
200
.NET 9 のパフォーマンス改善
nenonaninu
0
1.1k
祝!Iceberg祭開幕!re:Invent 2024データレイク関連アップデート10分総ざらい
kniino
3
320
バクラクのドキュメント解析技術と実データにおける課題 / layerx-ccc-winter-2024
shimacos
2
1.1k
生成AIのガバナンスの全体像と現実解
fnifni
1
200
KubeCon NA 2024 Recap: How to Move from Ingress to Gateway API with Minimal Hassle
ysakotch
0
210
なぜCodeceptJSを選んだか
goataka
0
160
マルチプロダクト開発の現場でAWS Security Hubを1年以上運用して得た教訓
muziyoshiz
3
2.4k
AI時代のデータセンターネットワーク
lycorptech_jp
PRO
1
290
Featured
See All Featured
Side Projects
sachag
452
42k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
95
17k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Into the Great Unknown - MozCon
thekraken
33
1.5k
GraphQLとの向き合い方2022年版
quramy
44
13k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.5k
4 Signs Your Business is Dying
shpigford
181
21k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Transcript
コンテナって何? (Kubernetes⼊⾨) みのるん @minorun365
むかしむかし「サーバー」がいました 物理サーバー 業務アプリを 24h稼働できる つよいコンピューター。 データセンターに⽣息 スペック⾜りない 台数増やしたい 機材注⽂、搬⼊… くそメンドイし時間かかる。
気軽に構成変更できない。
物理は⾯倒なので「仮想化」されました 物理サーバー 業務アプリを 24h稼働できる つよいコンピューター。 データセンターに⽣息 物理機器そのままで サーバーをいくつも 動かせればいいのに 1台の物理マシン上で
複数の仮想マシンを動かせる。 (VMware社のvSphereなど) これが15年前ぐらいのトレンド 仮想サーバー on 物理 OS(Linuxなど) アプリ 仮想ホストOS(ESXなど) 仮想マシン1 ゲストOS1 アプリ1 仮想マシン2 ゲストOS2 アプリ2
クラウド化で根っこの物理も不要に 仮想マシン増えて 管理や増設⾯倒… 物理ホストすら もう持ちたくない 祝!⾃社データセンター卒業。 レイヤー低めなインフラエンジニアは ここで職を失うことに 仮想サーバー on
クラウド パブリッククラウド EC2 ゲストOS1 アプリ1 EC2 ゲストOS2 アプリ2 仮想サーバー on 物理 仮想ホストOS(ESXなど) 仮想マシン1 ゲストOS1 アプリ1 仮想マシン2 ゲストOS2 アプリ2
仮想マシンすら邪魔になってきた EC2増設するたび Linux構築⾯倒… アプリ+環境だけ 持ち運べないかな アプリ+ライブラリ+ミドルウェアを 包み込んでOSから分離(Dockerなど) 超軽量で開発しやすく、デプロイも⾼速! これが10年前ぐらいのトレンド コンテナ
on 仮想サーバー 仮想サーバー on クラウド パブリッククラウド EC2 ゲストOS1 アプリ1 EC2 ゲストOS2 アプリ2 パブリッククラウド EC2 ゲストOS1 コンテナ1 アプリ1 コンテナ2 アプリ2 EC2 ゲストOS2 コンテナ3 アプリ3
Kubernetes の世界 ちょっと待ってコンテナ増えすぎた コンテナ on Kubernetes パブリッククラウド EC2 ゲストOS1 コンテナ1
アプリ1 コンテナ2 アプリ2 EC2 ゲストOS2 コンテナ3 アプリ3 EC2 ゲストOS3 Kubernetes 管理ミドルウェア 管理 Googleのすごい⼈が 作った管理ツール
Kubernetes の世界 低レイヤーはどんどんマネージド化 コンテナ on EKS パブリッククラウド コンテナ1 アプリ1 コンテナ2
アプリ2 EC2 ゲストOS2 コンテナ3 アプリ3 管理 EKS Kubernetes 管理ミドルウェア Fargate
EKS K8s の世界 ようやくKubernetes(=K8s)の解説 パブリッククラウド コンテナ1 アプリ1 コンテナ2 アプリ2 EC2
ゲストOS2 コンテナ3 アプリ3 管理 Kubernetes 管理ミドルウェア Fargate コントロールプレーン (リーダー) データプレーン (メンバー)
EKS K8s の世界 ようやくKubernetes(K8s)の解説 パブリッククラウド コンテナ1 アプリ1 コンテナ2 アプリ2 EC2
ゲストOS2 コンテナ3 アプリ3 管理 Kubernetes 管理ミドルウェア Fargate コントロールプレーン (リーダー) データプレーン (メンバー) ワーカーノード マスターノード コマンド& 定義ファイル で操作 (GUIなし) AWSマネコン で操作 (GUIあり)
今回のハンズオン環境 あなた 会社PC AWSアカウント CloudShell ブラウザーで ログイン IAMユーザー コマンド 操作
クラスター作成指⽰ (eksctl) EKS
EKSが⾃動でクラスターを作ってくれる あなた 会社PC AWSアカウント CloudShell ブラウザーで ログイン IAMユーザー コマンド 操作
クラスター作成指⽰ (eksctl) EKS Kubernetesクラスター (リーダー+メンバーの1セット) リーダー (まだコンテナなし) EC2 EC2 メンバー 管理 派遣
K8s世界の操作は「リーダーに命令」 あなた 会社PC AWSアカウント CloudShell ブラウザーで ログイン IAMユーザー コマンド 操作
EKS Kubernetesクラスター (リーダー+メンバーの1セット) リーダー (まだコンテナなし) EC2 EC2 メンバー 管理 K8s操作コマンド (kubectl)
細かい注⽂はファミレス⽅式で あなた 会社PC AWSアカウント CloudShell ブラウザーで ログイン IAMユーザー コマンド 操作
EKS Kubernetesクラスター (リーダー+メンバーの1セット) リーダー EC2 EC2 メンバー 管理 K8s操作コマンド (kubectl) 定義ファイル (注⽂書) YAML コン テナ コン テナ コン テナ
クラスターができたら 実際にコンテナを操作してみる
コンテナ作成前の状態 あなた 会社PC AWSアカウント CloudShell IAMユーザー EKS Kubernetesクラスター コントロール プレーン
(まだコンテナはいない) EC2(ノード) EC2 (ノード) データプレーン どんなPodがいますか? (kubectl get pod) 確認
コンテナ(Pod)を作ってみる あなた 会社PC AWSアカウント CloudShell IAMユーザー Kubernetesクラスター コントロール プレーン EC2(ノード)
EC2 (ノード) データプレーン 注⽂書のとおりPodを作ってね (kubectl apply ‒f 注⽂書) 定義ファイル (注⽂書) YAML my- nginx 作成 Pod アップロード EKS K8sの世界では コンテナを包んだ 最⼩単位をPodという Pod コンテナ
Podにログインしてみる あなた 会社PC AWSアカウント CloudShell IAMユーザー Kubernetesクラスター EC2(ノード) EC2 (ノード)
あのPodでコマンド実⾏したい (kubectl exec) my- nginx いまここ 気分
もう1つPodを作ってみる あなた 会社PC AWSアカウント CloudShell IAMユーザー Kubernetesクラスター EC2(ノード) EC2 (ノード)
注⽂書のとおりPodを作ってね (kubectl apply ‒f 注⽂書) 定義ファイル (注⽂書) YAML my- nginx 作成 Pod アップロード fumi dai Pod
Podから別のPodへ通信してみる あなた 会社PC AWSアカウント CloudShell IAMユーザー Kubernetesクラスター EC2(ノード) EC2 (ノード)
あのPodでコマンド実⾏したい (kubectl exec) my- nginx いまここ 気分 fumi dai HTTPアクセス (curl)
Podを冗⻑化してみる(レプリカセット) あなた 会社PC AWSアカウント CloudShell IAMユーザー Kubernetesクラスター EC2(ノード) EC2 (ノード)
あのPodを常時3台ほしい (kubectl apply ‒f 注⽂書) triple- nginx fumi dai 定義ファイル (注⽂書) YAML アップロード triple- nginx triple- nginx 作成 レプリカセット
複数Podへロードバランスする(サービス) あなた 会社PC AWSアカウント CloudShell IAMユーザー Kubernetesクラスター EC2(ノード) EC2 (ノード)
my- nginx fumi dai my- nginx my- nginx my- nginx サービス いまここ 気分 HTTPアクセス (curl) この3 Podは 同サービスとする 定義ファイル (注⽂書) YAML アップロード
複数Podをローリング更新(デプロイメント) あなた 会社PC AWSアカウント CloudShell IAMユーザー Kubernetesクラスター EC2(ノード) EC2 (ノード)
現Ver fumi dai 現Ver 新Ver デプロイメント 新バージョンの コンテナイメージ を適⽤! 定義ファイル (注⽂書) YAML アップロード 新Ver 新Ver