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&Cloud Native 2021
Search
cyberblack28
March 11, 2021
Technology
3
740
これから始める人のためのKubernetes&Cloud Native 2021
CloudNative Days Online 2021 Spring 資料
cyberblack28
March 11, 2021
Tweet
Share
More Decks by cyberblack28
See All by cyberblack28
インフラエンジニアBooks 30分でわかる「Dockerコンテナ開発・環境構築の基本」
cyberblack28
13
10k
What is Cloud Native ?
cyberblack28
6
2.4k
これから始める人のためのKubernetes&CloudNative入門
cyberblack28
10
4k
Read with author "Complete Guide to Utilizing Kubernetes by Rancher"
cyberblack28
2
1.3k
教えると学ぶ -Cloud Native Technology-
cyberblack28
3
520
What a Windows Container looks like ?
cyberblack28
5
5.9k
What a Runtime of Windows Container looks like ?
cyberblack28
2
2.1k
極める、伝える、教えるの調和 2020
cyberblack28
1
530
KubeCon CloudNativeCon 2019 SanDiego Recap 〜Vitess〜 English.ver
cyberblack28
1
150
Other Decks in Technology
See All in Technology
NilAway による静的解析で「10 億ドル」を節約する #kyotogo / Kyoto Go 56th
ytaka23
3
380
kargoの魅力について伝える
magisystem0408
0
210
どちらを使う?GitHub or Azure DevOps Ver. 24H2
kkamegawa
0
860
第3回Snowflake女子会_LT登壇資料(合成データ)_Taro_CCCMK
tarotaro0129
0
200
5分でわかるDuckDB
chanyou0311
10
3.2k
Microsoft Azure全冠になってみた ~アレを使い倒した者が試験を制す!?~/Obtained all Microsoft Azure certifications Those who use "that" to the full will win the exam! ?
yuj1osm
2
110
バクラクのドキュメント解析技術と実データにおける課題 / layerx-ccc-winter-2024
shimacos
2
1.1k
UI State設計とテスト方針
rmakiyama
2
640
普通のエンジニアがLaravelコアチームメンバーになるまで
avosalmon
0
110
DevFest 2024 Incheon / Songdo - Compose UI 조합 심화
wisemuji
0
120
開発生産性向上! 育成を「改善」と捉えるエンジニア育成戦略
shoota
2
400
NW-JAWS #14 re:Invent 2024(予選落ち含)で 発表された推しアップデートについて
nagisa53
0
270
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
133
9k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Adopting Sorbet at Scale
ufuk
73
9.1k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
247
1.3M
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
66k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
2
290
How to Think Like a Performance Engineer
csswizardry
22
1.2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
A Tale of Four Properties
chriscoyier
157
23k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
Transcript
CloudNative Days Online 2021 Spring Oracle Japan Yutaka Ichikawa これから始める人のための
Kubernetes & Cloud Native 2021
Certification & Community CKA CKAD 2018 2019 #CNDT2020 Name: Yutaka
Ichikawa Twitter/GitHub/Qiita: cyberblack28 Hatena Blog: https://cyberblack28.hatenablog.com/ Slides: https://speakerdeck.com/cyberblack28 Job Principal Solution Engineer Oracle Japan Profile #cnbfmeetup Cloud Native Bright Future
• I don't know what to start with. • Learn
Cloud Native Technology • Teach Cloud Native Technology • Summary Agenda
I don't know what to start with.
Myself 日々この3つの調和を目指して活動しています 極める = エンジニアとして技術を極める 伝える = エバンジェリスト・アドボケートとして技術を提唱する 教える =
技術教育者として技術を教える 極める、伝える、教えるの調和
Myself 「極める、伝える、教える」 の根底にあるもの
Myself それは、「学び」
Myself エンジニアとして技術を極められない... 自身が学ばないと 技 術 を 提 唱 で き
な い ... 技 術 を 教 え ら れ な い ...
Myself 「学び」をどうしているか?
Myself 「何から始めて良いのかわからない」 へのアプローチ
Learn Cloud Native Technology
Learn Cloud Native Technology Books Docker、Kubernetes、コンテナランタイムなどをイラストで解明!!
Learn Cloud Native Technology Books ここ数年にかけてDocker/Kubernetesに関連する書籍が多数出版されました。 DockerとKubernetesを合わせて学ぶことができます。
Learn Cloud Native Technology Books Kubernetesの詳細を学ぶことができます。
Learn Cloud Native Technology Books クラウドネイティブアプリケーションを支える技術としてのDocker/Kubernetesから関 連する技術まで、これからのエコシステムについて学ぶことができます。
Learn Cloud Native Technology Books Docker/Kubernetes上で稼働させるアプリケーションを プロダクションで利用するにはどうするべきかを学ぶことができます。
Learn Cloud Native Technology Web Informations Docker/Kubernetesの公式サイトでは、最新の情報や公式ドキュメントがあります。 https://kubernetes.io/ https://www.docker.com/
Learn Cloud Native Technology Web Training 無料でブラウザさえあればハンズオントレーニングを利用できます。 Docker/KubernetesだけでなくたくさんのCloud Native技術コンテンツがあります。 https://www.katacoda.com/
Learn Cloud Native Technology Web Training 無料で動画講義を受けることができます。 https://kube.academy/
Learn Cloud Native Technology Conference & Event 技術カンファレンスや技術コミュニティ主催のイベントに参加することで キャッチアップできます。 #CNDT2020
#KubeCon #CloudNativeCon #k8sjp KubeFest tokyo
Learn Cloud Native Technology Seminar & Training 有料/無料含め、Cloud Native Technologyのセミナーやトレーニングを
利用して学ぶことができます。 Docker Kubernetes
Learn Cloud Native Technology Contribute Cloud Native TechnologyはOSSがベースとなっているため ソースコードを読むことで勉強となり、修正をプルリクエストして貢献もできます。 海外のエンジニアともSlackなどで交流できます。
ソースコードは敷居が高い場合があるかもしれません。 公式ドキュメントの翻訳でコントリビュートにチャレンジもできます。
Learn Cloud Native Technology Writing 個人ブログ、QiitaなどのWeb執筆、zenn、技術書典などで自主的に書籍を執筆する ことで学びを得ることができます。
Learn Cloud Native Technology SNS Twitter、FacebookなどでCloud Native Technologyのインフルエンサーや情報源とな るアカウントをフォローして情報をキャッチアップすることから学びに繋がります。
Learn Cloud Native Technology Certificates 資格取得を目指して学ぶのも一つです。 CKA CKAD CKS New!
Learn Cloud Native Technology Main business & Side business 本業の仕事で個人またはチームで試行錯誤しながら、
副業で自分よりも優れた人たちと共に学ぶのも一つです。
Learn Cloud Native Technology Community 技術コミュニティのミートアップに参加または登壇することで学ぶことができます。 運営メンバーになることで人脈も広がります。
Myself コミュニティついて深堀
Learn Cloud Native Technology クラウドネイティブの状況は、 パブリッククラウドが騒がれ始めた時に似ています。 クラウドの時代にはコミュニティがエンジニアの成長を支えていくのではないか Publickey 2014.2.21 このクラウドをクラウドネイティブに置き換えると当てはまります。
Learn Cloud Native Technology クラウドネイティブ関連技術は、社内や仕事を通して学べる範囲を超えてます!! • 会社の上司が、こうした新技術を包括的に 教えてくれますか? • クラウドネイティブにおける
DevOps,IoT,Machine Learningなど、多岐 にわたる分野を教えられる人はいますか? • 「できます、やります、頑張ります!」 に限界がありませんか?
Learn Cloud Native Technology 実際の声 “社内に一人でも最新の技術をキャッチアップして、実践して、反映 できる人がいれば良いのですが、現状のIT企業、特に中小企業や最 新技術とは縁遠い部署などでは、最新技術のキャッチアップや技術 取得、社内育成において困難な状況にあります。”
Learn Cloud Native Technology コミュニティがエンジニアの成長のための大事な場所に クラウドネイティブ時代の様々な技術を学ぶために社外へ出て行 き、情報収集、情報発信、情報共有を実践してスキルアップや社内 にフィードバックして育成を計る。 • 国内外カンファレンス
• ミートアップ • 勉強会/もくもく会 • セミナー/トレーニング • コミュニティ運営 • 技術書籍 • Web情報/トレーニング • コントリビュート/Slack • 技術ブログ/執筆 • SNS イベントへの参加 情報収集、発信、共有
Learn Cloud Native Technology Cloud Native Technology’s Community #k8sjp #dockertokyo
#rancherjp #paasjp #cndjp #k8sinternal #k8snovice #cloudnativejp #envoytokyo #prometheustokyo #japanrook #openshiftjp
Learn Cloud Native Technology 参加者のメリット • 最新技術、事例等のキャッチアップ • 人とのつながり •
社内フィードバックからの育成 参加者のデメリット • レベルが高すぎて、ついていけない
Learn Cloud Native Technology 一部の声 “最新の技術をどんどん取り入れて、実践している人達の話は参考にな りますが、レベルが高くてついていけない。結局何から始めてよいのか 分からない。” “入門者向けのハンズオン勉強会は、入りやすく、有識者に質問や相談 することができるので非常にありがたい。自分のスキルアップだけでな
く、社内へのフィードバック、育成への良いきっかけとなる。”
Learn Cloud Native Technology Docker 入門ハンズオン勉強会 札幌、東京、名古屋、 大阪、京都、神戸、 広島、岡山、福岡、沖縄 全29回
1年 約400人 無料 #kujiraya
Learn Cloud Native Technology 心の奥底にある声 “できる人に教わりたい、 学びたい、一緒にやりたい”
Teach Cloud Native Technology
Teach Cloud Native Technology 学んで身に着けた技術を どう教えるか、どう教えてきたか?
Teach Cloud Native Technology もちろん、 教えることで学ぶこともあります
Teach Cloud Native Technology 技術面だけではなく、 教え方も考えなければならない
Teach Cloud Native Technology 伝えるから教える
Teach Cloud Native Technology 座学とハンズオン
Teach Cloud Native Technology 1. 主催者がPC、環境、教材もすべて準備 a. 受講者にとっては良いが、主催者としては準備労力とコストが発生 2. 受講者にPCも環境セットアップも準備してもらう(教材は主催者)
a. 主催者にとって準備労力やコストは抑えられるが、受講者のPC環境差異に よるトラブル率が高まる b. 受講者としては準備労力とコストが発生 ハンズオン環境ってどうしてます?
Teach Cloud Native Technology 1. 受講者にクラウド(有料/無料)のアカウントを準備してもらう a. ノートPC(Win/Mac不問)にブラウザだけで、環境差異のトラブルが生じにくい b. 受講者の準備作業はクラウドのアカウント作成
c. 主催者の準備労力とコストを削減 d. クラウドベースの教材にすることで、受講後も同じ環境で復習できる 2. 各クラウドベンダーが提供するCloud Shellが便利 a. 受講者の事前準備におけるツールのインストールが不要になる b. 全てコマンド操作に集約できる ハンズオン環境はクラウド利用
Teach Cloud Native Technology 1. スライド a. 図を多く、文字少なめで簡潔が理想! b. コマンド結果を載せる場合は、説明が必要な場合に!
2. ハンズオン用テキスト a. 手打ちではオペミスによる誤作動率があがります b. 復習の利便性向上 c. コピー&ペースト用のテキストとコマンド結果表示も掲載しておくと良い d. 「クリップボードにコピー」ボタンを用意をオススメ! e. どこで?⇒GitHub、GitLab、Qiita、ブログサービスなど 教材はどうしてます?
Teach Cloud Native Technology 1. 座学とハンズオンの組み合わせ 2. ハンズオンのパターン a. 受講者と一緒に行う
b. 一定時間を設けて受講者に実習、実習後に解説 3. ハンズオンの前に必ず全体説明 4. ハンズオン中に何をやっているか見失わないようにする トレーニングの流れはどうしてます?
Teach Cloud Native Technology 初級講座で Docker/Kubernetesのつまずくポイント
Teach Cloud Native Technology 1. 仮想マシンとコンテナの違い 2. 仮想マシンイメージとコンテナイメージ(イメージとコンテナ含む)の違い 3. DockerとContainerRuntimeの関係性
4. Kubernetesってそもそも何? 5. コンテナアプリケーション開発の全体像って? Q&Aでもよく質問されます
Teach Cloud Native Technology 仮想マシンとコンテナの違い Virtual Machine Hypervisor Hardware Kernel
Library Application Virtual Machine Kernel Library Application Container Container Engine Hardware Kernel Library Application Container Library Application 各仮想マシンでカーネルが稼働、隔離性が高いが、 起動が遅く(数分)オーバヘッドが大きい カーネルを共有しているため、隔離性は低いが、 起動が高速(数秒)でオーバヘッドが小さい 仮想マシンは個別のカーネル利用、コンテナはホストのカーネルを共有
Virtual Machine Teach Cloud Native Technology 仮想マシンイメージとコンテナイメージの違い Application OS/Library Hypervisor
Hardware 仮想マシンイメージがベンダー製品特有 の形式で容量も重く可搬性も低い 仮想マシンイメージ
Teach Cloud Native Technology コンテナイメージ 1.ビルド(Build) OS/Library Application OS/Library Container
Image Build • OS/ライブラリとアプリケーションをパッケージイメージ化 • イメージはこれまでの仮想マシンイメージに比べるとはるかに軽いのでポータビリティ性が高い 2.シップ(Ship) • イメージをレジストリに保存して共有 OS/Library Container Image OS/Library Image Registry OS/Library Push Pull Image Share/Ship
Teach Cloud Native Technology 3.ラン(Run) OS/Library Container Image • イメージを基にコンテナを起動します。
Run OS/Library Container OS/Library Container コンテナープラットフォーム上でイメージからコンテナを起動して、アプリケーションを稼働させます。 イメージもプラットフォームも特定ベンダー技術に依存しないため、ベンダーロックインもありません。 Container Platform
Teach Cloud Native Technology DockerとContainer Runtimeの関係性 コンテナを実際に作るのはDockerではなく、Container Runtimeです。 Docker Docker
Client containerd runC Linux cgroups Namespaces Union Filesystem Network Low-level Container Runtime High-level Container Runtime OCI(Open Container Initiative) CRI(Container Runtime Interface) kubelet Container
Teach Cloud Native Technology docker CLI dockerd Containerd runC Low-level
Container Runtime High-level Container Runtime Docker Engine Client Side Server Side 構成要素 説明 docker CLI コマンドラインインターフェースとしてDockerコマンドを提供します。 dockerd イメージ、ファイルシステム、ネットワークの管理、REST APIの提供するDockerの本体。Mobyとも呼ばれています。 containerd CNCF(CloudNativeComputingFoundation)にホストされているcontainerdは、Dockerのハイレベルコンテナーランタイムとしてコンテナーのラ イフサイクルを担います。KubernetesではCRI(Container Runtime Interface)プラグインに対応してPod用のNICやベースとなるpauseコンテ ナーを作成します。 runC OCI(Open Container Initiative)にホストされているrunCは、Dockerのローレベルコンテナーランタイムとしてシステムリソースの隔離で namespace、制限でcgroups、セキュリティでAppArmor・SELinux・seccomp等、ホストカーネルの機能を利用してコンテナーを作成します。
Teach Cloud Native Technology そもそもKubernetesとは? BareMetal Virtual Machine Kubernetesは分散処理基盤 Kubernetes
Container
Image Repositry Teach Cloud Native Technology コンテナアプリケーション開発の全体像って? OS/Library OS/Library OS/Library
Container OS/Library Container Container Platform BareMetal Virtual Machine IaaS Developer Code Repository CI/CD Pipeline Build Ship Run コンテナープラットフォーム へのデプロイ CIパイプラインによる テスト、ビルド、イメージプッシュ イメージ共有 コンテナーの可搬性(Portability)とスピード(Agility)を持ち合わせ、 品質および生産性の高いアプリケーション開発を実現 Infrastructure Engineer Operator Code Dockerfile manifest VM
Image Repository Teach Cloud Native Technology OS/Library OS/Library OS/Library Container
OS/Library Container Container Platform BareMetal Virtual Machine IaaS Developer Code Repository CI/CD Pipeline Build Ship Run コンテナープラットフォーム へのデプロイ CIパイプラインによる テスト、ビルド、イメージプッシュ イメージ共有 傾向として、CDをGitで管理するGitOps手法が取り入られ始めています。 Infrastructure Engineer Operator Config Repository Pull Request GitOps Operator CD Change manifest Change code manifest Code Dockerfile VM
Summary
Teach Cloud Native Technology 学ぶと教えるは表裏一体、 継続することが大切です!
Thank you !!