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 みのるん
AIOpsとLLMOpsってどう違うの?? ついでにLLMOpsに入門しよう!
minorun365
PRO
2
250
【令和最新版】AWS Direct Connectと愉快なGWたちのおさらい
minorun365
PRO
5
760
なんで、私がAWS Heroに!? 〜社外の広い世界に一歩踏み出そう〜
minorun365
PRO
8
1.4k
LLMアプリをRagasで評価して、Langfuseで可視化しよう!
minorun365
PRO
3
400
まだ間に合う! 生成AIトレンドおさらい&AWSで内製開発に入門しよう
minorun365
PRO
4
630
ついに出た!OpenAIの最新モデル「o1」って何がすごいの?
minorun365
PRO
11
3.3k
JAWS-UG主催 週刊AWSキャッチアップ 生成AI編(2024/9/2週)
minorun365
PRO
2
66
突撃! 隣のAmazon Bedrockユーザー 〜YouはどうしてAWSで?〜
minorun365
PRO
3
780
技術ブログや登壇資料を秒で作るコツ伝授します
minorun365
PRO
29
6.2k
Other Decks in Technology
See All in Technology
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
2
320
Adopting Jetpack Compose in Your Existing Project - GDG DevFest Bangkok 2024
akexorcist
0
110
強いチームと開発生産性
onk
PRO
35
11k
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
390
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
290
ISUCONに強くなるかもしれない日々の過ごしかた/Findy ISUCON 2024-11-14
fujiwara3
8
870
サイバーセキュリティと認知バイアス:対策の隙を埋める心理学的アプローチ
shumei_ito
0
390
The Rise of LLMOps
asei
7
1.6k
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
390
OCI Network Firewall 概要
oracle4engineer
PRO
0
4.1k
ドメイン名の終活について - JPAAWG 7th -
mikit
33
20k
SREが投資するAIOps ~ペアーズにおけるLLM for Developerへの取り組み~
takumiogawa
1
360
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
109
49k
Faster Mobile Websites
deanohume
305
30k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
A better future with KSS
kneath
238
17k
Scaling GitHub
holman
458
140k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.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