Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
第105回 雲勉【オンライン】Amazon EKSとコンポーネントの基礎を理解する
Search
iret.kumoben
June 09, 2023
Technology
150
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
第105回 雲勉【オンライン】Amazon EKSとコンポーネントの基礎を理解する
下記、勉強会での資料です。
https://youtu.be/LkEbn5rHE1U
iret.kumoben
June 09, 2023
More Decks by iret.kumoben
See All by iret.kumoben
第182回 雲勉 【Gemini 3.0 Pro】AI ベンチマーク徹底比較!他モデルに比べ優れている点まとめ
iret
0
130
第181回 雲勉 WEB制作者のちょっとした面倒をAWSで解決!Amazon S3とAWS Lambda活用術
iret
0
110
第180回 雲勉 Abuse report の調査・確認方法について
iret
0
130
第179回 雲勉 AI を活用したサポートデスク業務の改善
iret
0
180
第178回 雲勉 Amazon EKSをオンプレで! Amazon EKS Anywhere 実践構築ガイド
iret
1
150
第177回 雲勉 IdP 移行を楽に!Amazon Cognito でアプリへの影響をゼロにするアイデア
iret
0
140
第176回 雲勉 VPC 間サービス接続を考える!Private Service Connect 入門
iret
0
130
第175回 雲勉 Amazon ECS入門:コンテナ実行の基本を学ぶ
iret
0
180
第174回 雲勉 Google Agentspace × ADK Vertex AI Agent Engineにデプロイしたエージェントを呼び出す
iret
0
200
Other Decks in Technology
See All in Technology
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
12k
AI時代だからこそ、スケールしないことをやろう
yutashigemura
1
160
GoにおけるFFIのこれまでとこれから
goccy
5
2.5k
HRC_Frontend_Conference_Fukuoka_2026.pdf
ts020
0
620
AI時代の「技術的負債」の変質ー概念の終焉と再解釈、エージェントと共に向かう先
nwiizo
0
900
Multica × 長期記憶:40個のミニプロジェクト管理
eiei114
1
260
2026-09-09 【sigma_ucj#1】Sigma を IaC 管理したい! / IaC for Sigma
civitaspo
0
130
ペアプロの価値はコードを書くことだけじゃない
codmoninc
PRO
0
210
[2026-09-11]SREは誰のもの?運用エンジニアが始める 「SRE領域への越境」とチームの進化の軌跡 〜Road to NEXT CRE
tosite
0
170
新機種発売前に見直そう!端末移行で再ログインが要るアプリ・要らないアプリは何が違うのか 〜シームレスに再開できる設計と実装〜
zozotech
PRO
0
130
俺の仕事は AIに奪われないし、たぶんその BIも要らない
hikaruri
0
170
WAF 運用改善の承認サイクル/SRE_BizReach_MIXI_1
visional_engineering_and_design
2
610
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
50
15k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Everyday Curiosity
cassininazir
0
320
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
240
How to Ace a Technical Interview
jacobian
281
24k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
520
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Transcript
2023/06/08 Amazon EKSとコンポーネントの基礎を理解する 第105回雲勉【オンライン】 アイレット株式会社
満村 雄⼆(みつむら ゆうじ) 1 ⾃⼰紹介 @Chanmitsu_sys l アイレット株式会社 l クラウドインテグレーション事業部
第⼆構築セクション所属 l 2022/2023 APN ALL AWS Certifications Engineer l 他にはGoogle Cloud 11冠、CKA、CKADなどを保有
2 1. 本資料について(19:05 〜 19:10) 2. Amazon EKSとKubernetesについて(19:10 ~ 19:25)
3. Kubernetesにおけるワークロードリソース(19:25 〜 19:50) 4. 質疑応答(19:50 〜) Agenda
3 1. 本資料について(19:05 〜 19:10) 2. Amazon EKSとKubernetesについて(19:10 ~ 19:25)
3.Kubernetesにおけるワークロードリソース(19:25 〜 19:50) 4. 質疑応答(19:50 〜) Agenda
4 本資料の⽬的 主な⽬的 l KubernetesとAmazon EKSの基礎を理解する︕ l サービスに対する興味を持ってもらう︕ 当資料で説明しないこと l
Amazon EKSのクラスター作成⼿順および細かい仕様 l マニフェストの効率の良い書き⽅ l ⾮機能関連の話 l ハンズオン あくまで初学者や久しぶりに振り返りたい⽅を対象とした講義となります
5 当資料の登場⼈物 名前︓みつお l 講師役 l さわだ、はやぶさの2名に Amazon EKSとKubernetesを教える 名前︓さわだ
l ベテランのインフラエンジニア l オンプレ経験が⻑く部内でも頼られている l 最近コンテナを使う案件が増えてきており 学習する取っ掛かりが欲しい 名前︓はやぶさ l 猛禽類系インフラエンジニア l 技術に対する好奇⼼が強い l 元々、Kubernetesに知⾒はあるが 今回、みつおの講義の様⼦を⾒にきた
6 1. 本資料について(19:05 〜 19:10) 2. Amazon EKSとKubernetesについて(19:10 ~ 19:25)
3.Kubernetesにおけるワークロードリソース(19:25 〜 19:50) 4. 質疑応答(19:50 〜) Agenda
7 Amazon EKSとは︖ l Amazon Elastic Kubernetes Service l AWSのコンテナオーケストレーションサービス
l Kubernetesのコントロールプレーンをマネージドに利⽤出来る l Kubernetesのワークロードを始めとする様々なリソースが利⽤出来る l AWSサービスとの親和性がある
8 Kubernetesとは︖ l コンテナ化されたアプリケーションを管理するプラットフォーム l コンテナオーケストレーションサービスにおけるデファクトスタンダード (公的に認めれてはいないが市場において「事実上の標準」としてみなされているもの) l Google社内で開発された「Borg」が元にして開発されたオープンソースソフトウェア
9 ⼀旦待って︖ コンテナオーケストレー ションサービス︖︖︖ コントロールプレーン︖︖︖︖ ワークロード︖︖︖︖ まずはコンテナオーケストレーションから 解説します
10 コンテナオーケストレーションとは︖ l IT⽤語でオーケストレーションは「システム、ソフトウェア、サービスの構築、運⽤管理を⾃動化すること」 l コンテナのデプロイ、スケーリング、起動台数の維持、監視などコンテナを利⽤する上で必要なオペレーション を⾃動化する 参考 第84回 雲勉【オンライン︓初⼼者向け】ECS⼊⾨
~ CloudFront + ELB + ECS FargateでWebサイトを公開 https://www.youtube.com/watch?v=0NR8SiYvNCI&list=PLfVXgDfPNYAGkvyskxFa_X0TcQxdbAeVX&index=25 Orchestrating the containers https://docs.aws.amazon.com/prescriptive-guidance/latest/container-platform-management/orchestrate-containers.html つまりですね・・・ 要するに︖
11 コンテナオーケストレーションとは︖ 要するにいい感じにやってくれる︕︕︕
12 コントロールプレーンとは︖ l クラスタ内にあるワーカーノードや、コンテナ情報を管理するためのノードのこと l マスターノードはレガシーな呼び⽅ 参考 Kubernetesコンセプト https://kubernetes.io /ja
/docs /concepts / いい質問ですね︕ コントロールプレーンは クラスタとワーカーノードと どう関係してるんですか︖
13 クラスタ、コントロールプレーン、ワーカーノードの関係性 EKSクラスターの中に コントロールプレーンとワーカーノードがある︕ ちなみに「ノード」はサーバ、マシン と同義で考えて良いと思います と⾔うわけで、次スライドで もう⼀度整理してみます
14 クラスタ、コントロールプレーン、ワーカーノードの関係性 項⽬ 詳細 EKSクラスター ・コンテナオーケストレーション環境の単位 ・クラスター内にコントロールプレーンとワーカーノードを含む コントロールプレーン ・コンテナ環境を管理するノード ・クラスタ毎に固有に作成される
・3つのAZにまたがって配置される ・クラスター内のKubernetesオブジェクトの状態を保持する ・クライアントからのコマンドや設定ファイルを受け取り、 APIアクションを呼び出し、コンテナのデプロイや更新を⾏う ワーカーノード ・実際にコンテナが起動するノード ・コントロールプレーンからの指⽰を受けてノード上にコンテナを起動させる ・ワーカーノードとしてEC2またはFargateを選択可能 いかがでしょ︖ イメージ出来ました︕︖ あざす︕
15 もう少しだけ深掘りしてみる︖ 細かい話ですが、 コントロールプレーンとワーカーノードは 他のAWSサービスと組み合わせて構成され てますよね ですね、それじゃあ 簡単に紹介しておこう
16 詳細アーキテクチャ コントロールプレーンはAWSが管理する VPC上に配置される
17 ⼀旦・・・まとめ l Amazon Elastic Kubernetes Service(Amazon EKS)はKubernetesベースの コンテナオーケストレーションサービスである l
EKSクラスターはコントロールプレーンとワーカーノードの2つで構成される l コントロールプレーンはワーカーノードやコンテナの構成情報を管理するノードのこと l ワーカーノードは実際にコンテナが起動するノードのこと 思ったより構成は簡単ですね︕
18 1. 本資料について(19:05 〜 19:10) 2. Amazon EKSとKubernetesについて(19:10 ~ 19:25)
3.Kubernetesにおけるワークロードリソース(19:25 〜 19:50) 4. 質疑応答(19:50 〜) Agenda
19 ワークロードとは︖ l Kubernetes上で実⾏するアプリケーションの事で以下のようなリソースを指す ・Pod ・ReplicaSet ・Deployment ・DaemonSet ・Job など
これらのリソース単位でワーカー ノードにデプロイされます
20 各リソースの説明に⼊る前に リソースの話に⼊る前に デプロイ⽅法伝えておいた⽅が 理解進むかもですね ハヤブサだけに鋭いですね kubectlコマンドを使いリソース情報を yaml(またはjson)形式のファイルで 定義した「マニフェスト」を読み込むこと でデプロイ出来ます
「マニフェスト」は、 CloudFormationでいうところ のテンプレート、 AnsibleでいうPlaybookみた いな物ってことか
21 kubectlとは︖ l Kubernetesクラスター向けのコマンドラインツール l コマンドの構⽂は「kubectl [command] [TYPE] [NAME]」 コマンド構⽂
参考 コマンドラインツール(kubectl) https://kubernetes.io/ja/docs/reference/kubectl/ 項⽬ 詳細 command ・リソースに対して実⾏したいアクション ・apply、get、describe、deleteなど TYPE ・リソースタイプの事 ・pod、replicasets、deploymentなど NAME ・実際のリソース名 ・⼤⽂字、⼩⽂字を区別する ・NAMEが省略された場合は、すべてのリソース詳細が表⽰される リソースタイプは、短縮系が 指定出来たりするので、 リファレンス⾒ながら使って みてね
22 kubectlのコマンド例 参考 コマンドラインツール(kubectl) https://kubernetes.io/ja/docs/reference/kubectl/ 操作例 コマンド実⾏例 すべてのPodの⼀覧を出⼒する kubectl get
pods マニフェスト「mitsuo.yml」の定義を 使⽤してリソースをデプロイする kubectl apply –f mitsuo.yml ノード「mitsuo」の詳細を表⽰する kubectl describe nodes mitsuo 運⽤者のスキルレベルにもよるけど、 オペレーションは統⼀した⽅が いいかもですね 構⽂⾃体がシンプルで分かりやすい 構築時はエイリアスや短縮系 を使ってたけど 運⽤者向けの⼿順では統⼀す るなど⼯夫はしてた
23 気を取り直して では、ワークロードの話をしますね 拝承
24 Podとは︖ l Kubernetes内で作成、管理出来るリソースの最⼩単位 ・1つ、または複数のコンテナのグループを指す ・複数のコンテナを含むPod内で補助的な役割を担うコンテナをサイドカーと呼ぶ ・Podに含まれるコンテナ同⼠は同⼀のIPアドレスを共有する ・Pod内におけるコンテナ間の通信は、localhost宛で通信出来る ECSでいうところの「タスク」ですね
25 Podのマニフェストサンプル(yaml形式) l nginxのコンテナを含むPod1台の場合 なんとなくは読み取れるけど・・・
26 Podのマニフェストサンプル(yaml形式) l nginxのコンテナを含むPod1台の場合 フィールド値 詳細 apiVersion ・どのバージョンのKubernetesAPIを利⽤するか kind ・作成するオブジェクトの種類
・Pod、ReplicaSet、Deploymentなど metadata ・オブジェクトを⼀意に識別するためのメタデータ情報 ・タグの付与やnamespaceなどもここで定義する spec ・オブジェクト毎に定義する詳細情報 ・Podの場合は、コンテナ名、コンテナイメージ、コンテナがリッスン するポートなどを指定する 参考 Kubernetes API https://kubernetes.io/ja/docs/concepts/overview/kubernetes-api/ Kubernetesオブジェクトを理解する https://kubernetes.io/ja/docs/concepts/overview/working-with-objects/kubernetes-objects/ 上記4点がマニフェスト の必須項⽬になります Specの詳細はAPIリファ レンスを参考にしてくだ さい
27 Namespaceとは︖ l Kubernetesのクラスター内で仮想的に分離する機能 ユーザ毎、機能毎に論理的に リソースを分割したい時に使います 例︓アプリケーション⽤コンテナと 監視⽤のコンテナを分割する Namespaceを指定しないリソースは 「default」に作成されます
Namespace単位で分割出来ない リソースも⼀部あったりします
28 ReplicaSetについて 残念ですが、Podリソースだけでは出来ないので、 次に説明するReplicaSetを利⽤します Podについては理解できました︕ これさえ作っておけば、Podの起動台数 を維持してくれるんですか︖
29 ReplicaSetとは︖ l 指定したPod数を複製して、起動台数を維持するリソース l 歴史的経緯によって「ReplicationController」から「ReplicaSet」に変わった Podの理解が出来ていれば ReplicaSetも簡単です 複製、維持・・・ なんだか難しそうですね
30 ReplicaSetのマニフェストサンプル(yaml形式) l nginxのコンテナを含むPod3台の場合 ・ReplicaSetのSpec設定 ・replicas 複製、維持するPodの台数 ・selecter ReplicaSetが所有するPodのラベルを指定 サンプルだと「app:
nginxタグが 付与されているPodを3台起動する」です
31 ReplicaSetのマニフェストサンプル(yaml形式) l nginxのコンテナを含むPod3台の場合 ・ReplicaSetのSpec内で、templateとspecを⾏う ・ templateは、Podに対するmetadataを指定出来る ・サンプルではラベルの付与を⾏っている ・specはPod内のコンテナ情報を定義する ReplicaSetのSpecとPodのSpecは別で
定義してる点がポイントです マニフェストの書き始めはインデント ずれでエラーが起きやすかったりする
32 さわださん何かに気づく︖ すごくいい質問︕︕ 実はワークロードリソースの中でも親⼦関係 になってるんです ん︖︖ KindがReplicaSetなのに、 なぜPodの定義もしているのですか︖
33 ワークロードリソースにおける親⼦関係 l 以下の図のようにリソースに親⼦関係がある l DeploymentがReplicaSetの親リソースであり、ReplicaSetがPodの親リソースである
34 Deploymentについて そうです︕ 次はDeploymentについて説明します ReplicaSetがPodの親リソースなの で、Podの定義も出来るんですね︕ そのReplicaSetの親リソースである Deploymentは何をしてるんだろ︖
35 Deploymentとは︖ l ローリングアップデート、ロールバックを実現するためのリソース l ReplicaSetは直接ローリングアップデートをサポートしない l 複数のReplicaSetを管理することが出来る リソース間の親⼦関係を知っていれば マニフェストがどう書かれるかが
イメージ出来ますわー デプロイするコンテナはアップデート していくはずだから、 必然的にDeploymentリソースを作成 してその中でReplicaSet、podで定義 していくことになりますね
36 Deploymentのマニフェストサンプル(yaml形式) l nginxのコンテナを含むPod3台の場合 バージョンアップの⽅法(Update Strategy)はReplicasetの定義をしている Specの中で指定します デフォルトではRolling Updateです ・KindをDeploymentにして後はReplicaSet、Podの定義をする
また、バージョンアップの⽅法は、 Recreate(⼀度全てのPodを削除してからPodを 再作成する)かRolling Update(Podを順次更新 する)の2種類から選べます Rolling Updateは、不⾜、超過を許容する台数 を指定することが出来ます 3台未満にしないようにしたり、最⼤4台まで 起動させるような設定です
37 その他のワークロードについて リソース名 詳細 DaemonSet ・各ノードにPodを1台ずつ配置するリソース ・Replica Setのように複製する数を指定して、各ノードに複数台Podを配置する事が出来ない ・監視⽤のAgentとして利⽤されるケースがある Job
・ジョブ⽤のリソース ・指定した回数分、処理を実⾏する ・ジョブの実⾏後は終了する CronJob ・指定した時間にJobを作成する StatefulSet ・データベースなどに利⽤されるステートフル(状態維持)なリソース ・Pod名が変わらず、サフィックスが連番で付与されるような形になる ・mitsuo-stateful-0、mitsuo-stateful-1、mitsuo-stateful-2
38 その他のワークロードについて l 前スライドのリソースにも親⼦関係がある どのリソースも⼦リソースは Podになってるんですね︕
39 その他のリソース カテゴリ種別 詳細 Workloads APIs ・コンテナの実⾏に関する当資料で紹介したリソース Service APIs ・システムを外部公開するためのリソース
・L4、L7レイヤのロードバランシング機能などを有する ・Service、Ingressなどがよく利⽤される Config & Storage APIs ・諸設定、機密情報の管理、永続化ボリュームなどのリソース ・ConfigMap、Secret、PersistentVolumeClaim l ワークロード以外にも様々なリソースがある うっ・・・ 頭が︕︕︕︕︕ みつおくん、 外部公開するシステムだと ServiceやIngressはほぼ必須だ し、そこを解説した⽅が良かった んじゃないです︖
40 ワークロードリソースでのまとめ l ワークロードリソースは、コンテナ実⾏に関わる重要なリソース l 代表的なリソースは最⼩単位となるPod、Podを複製し維持する機能を有する ReplicaSet、アップデート、ロールバックに対応するDeploymentなどである l ワークロード以外にもkubernetesを構成するために重要なリソースがある これだけリソース数が多いと
講義だと説明しきれないですね そうなんですよね・・・ リクエストがあれば、もう少し踏み 込んだ内容で登壇してもいいかも
41 最後に いかがだったでしょうか︖ コントロールプレーンがマネージドになったとしても、Kubernetesや拡張機能に関する知識、開発速度が速い ことによるアップデートの追従が必要になるため、⽐較的難易度の⾼いサービスと思います。 今回の講義を通して、Amazon EKSやKubernetesの理解が深まったり、少しでも興味が湧いた⽅がいれば登 壇して良かったなと思います。本⽇はありがとうございました。
42 1. 本資料について(19:05 〜 19:10) 2. Amazon EKSとKubernetesについて(19:10 ~ 19:25)
3.Kubernetesにおけるワークロードリソース(19:25 〜 19:50) 4. 質疑応答(19:50 〜) Agenda
4 3