What you'll learn:
- Kubernetesの基本リソース(Pod, Service, Replica, Deployment, Ingress, ConfigMap, Volume)を図解で学び、kubectl コマンドを使って設定・構築できるようになります
- 複数ホスト上でコンテナを冗長化するReplicasetを理論と実践を通して学び、高Trafficに対応できる仕組みをクラスター上に構築できるようになります
- 複数ホスト上に存在する複数Podを無停止更新(ローリングアップデートとロールバック)し、Downtime無しに安定的にアプリのリリースができるようになります
- Podをクラスター内外に公開する3つのServiceタイプ(ClusterIP, NodePort, LoadBalancer)とそれらのメリット・デメリットと説明でき、且つコマンドでServiceを作成できるようになります
- Podをクラスター外にLayer7ロードバランサーで公開できるIngressを図解で学び、YAMLで定義したHTTPパスを公開し・テスト・デバッグできるようになります
- Pod内のDockerコンテナに永続Volume(PV, PVC)をマウントし、コンテナ内のデータをクラスターノード上に永続的に保存できるようになります
- 命令的コマンド・宣言的なYAMLの違いがわかり、DevOpsプラクティスのIaC(Infrastructure as Code)の利点、実践的なコードに書き方を身につけます
- Docker-Composeで定義されたWebアプリケーション(Nodejs + Python + Redis + Postgres + C#)をK8sの宣言的YAMLに変換し構築できるようになります
- Linuxとドッカーコマンドを学び、マイクロサービスデベロパーやDevOpsの第一歩を踏み出せます
- Kubernetesのマスターワーカーアーキテクチャを図解で学び、ソフトウェアのアーキテクトを説明できるようになります
- 従来に仮装VMとドッカーの違いを理解して、今流行りのコンテナ化の理由がわかるようになります
- Linuxコマンドやカーネル・シェル・STDIN・STDOUT・TTYを理解し、Dockerコマンドで応用できるようになります
- Linuxネットワークネームスペースと4つのドッカーネットワーキングモードがわかるようになります
*Updated the course material on Nov 17th 2022
このコースを一文でまとめると?
このコースは、アプリ開発やDevOps経験初心〜中級者の方が、Linuxの簡単な基礎(カーネル・シェル・STDIN・STDOUT・TTY)とDocker(イメージ・コンテナ・VMとの違い・Dockercompose・ネットワーキング・Volume)をベースにして、Kubernetesクラスター上にコンテナ化されたアプリをディプロイ・構築・起動というK8sデベロパー初心者として1から学び、コンテナ化できるデベロパーやDevOpsとしてキャリアアップを目指す方向けのコースです。
注釈: このコースはK8sのアドミニストレーターになるための第一歩です。CKAD(CertifiedKubernetesApplication Developer)のカリキュラムに寄せて、K8sオブジェクトやアプリの公開・設定を、ローカルホスト上のMinikubeというKubernetesクラスターで行い学習することを重視しています。CKA(CertifiedKubernetesAdministrater)のようなマスターノードの深い理解やクラスターのアドミンというスコープは上級者向けなので、このコースでは対象外です。また、AWSやGCPのクラウド上でのK8sクラスターの構築も対象外です。AWS EKSでの0から本番運用までを学びたい方は、私の別のコースを推奨します。
☆コース内容を確認した上で受講をいただけるように、無料プレビューを公開してます。ぜひご覧ください☆
もしかしてあたなは今下記に当てはまりますか?
Kubernetesをはじめるきっかけがない
Dockerはなんとなくわかった、じゃあ次はKubernetesを学ぼう!
Kubernetesの概要だけ知りたい
Nodeってなに?Podってなに?
Dockerをローカルホストで動かすだけでなく、K8sクラスター上で動かしてみたい⼈
オーケストレーションについて理解したい⼈
ロードバランサーや、コンテナが死んでも自動で復旧させられる仕組みを理解したい
クーバネティスって数年前から聞いたことはあるけど、いまいちわからない・・・
Dockerのコンテナ化後の次のステップとして、ほぼ確実にKubernetesが必須と聞いたけど・・・
ドッカーの理論と実践を図解付きでしっかりを学びたい
Googleが開発したクーベネティスが今超アツイって聞くけど・・・
当コースを取るべき人
今の自分のエンジニアのスキルに満足してない
プログラミング経験が1−3ヶ月以上ある
Dockerの経験が1−3ヶ月以上ある(Docker中級者以上推奨。私のDocker完全入門コースを終えてからこのコースをお勧めします)
ドッカーを使ってWebアプリを構築・運用し、さらにクラスター上で公開したい
K8sの理論と実践を学んで理解し、仕事で活かせるようになりたい
とりまKubernetesコマンドを練習したい
Kubernetesのアーキテクチャやネットワーキングの基礎を理解したい
ただの一夜漬けのkubectlコマンド暗記ではなく、丁寧な図解説で本質をマスターしたい
Linux・ドッカー・Kubernetesを取り巻くコマンドやコンセプトを現役DevOpsエンジニアの監修のもと学びたい
当コースが不要な人
Kubernetesの理論や実践をたくさん知っている
特にアプリのコンテナ化を考えておらず、ドッカーやK8sにに興味ない
プログラミングをしたことが全くない
Kubernetesのアドミンになるための理論や実践をたくさん知っている・もしくわ学びたい
正直なところ、わたしも4年前は自分がDockerというコンテナ技術とKubernetesというコンテナオーケストレションツールを使うことになるとは思っていませんでした。初めてK8sを使ったのは2017年です。
元々バックエンドデベロパーで、北米の大学をCS専攻で卒業していましたが、コンテナ化・ドッカーという単語は一度も転職するまで耳にしませんでした。
そして初めて公式ページを見たときは衝撃的でした。なぜなら「全くワケが分からなかった」からです。
でもこれは偶然ではありません。
もちろん「CS専攻だから理解できて当たり前」「エンジニアならドッカー・クーベネティスはできて当たり前」と聞くことはあるでしょうが、だからと言って簡単に身に付く知識・スキルではありません。
アメリカならず、カナダ、ドイツの超有名企業に転職して見てきてわかることは、いかにシニアレベルの、そしてDevOpsのエンジニアでも必ずしも「ドッカー」「マイクロサービス」「DevOps」「Kubernetes」を完璧に理解しているとは限らないのです。なぜならDockerやDevOps,AWSやKubernetesは過去3−5年で急激に広まっている新興テクノロジーだからです。
当コースは単なる理論詰め込み型ではなく、再現性の高い実践的なラボとわかりやすい図解説付きのハウトゥーです。
ちなみに当コースは約5時間以内で完結。1日30分でも構いません。週末に一気に修了してもOKです。
このコースで理論と実践を学ぶことで、あなたの
Linuxコマンドやカーネル・シェル・STDIN・STDOUT・TTY
ドッカーの基本コマンドを使ってイメージからコンテナを起動したり、環境変数・ポートの変更
従来に仮装VMとドッカーの違い
Kubernetesのマスターワーカーアーキテクチャ
Linuxネットワークネームスペースと4つのドッカーネットワーキングモード
Kubernetesの基本リソース(Pod,Service,Replica,Deployment,Ingress,ConfigMap,Volume)
複数ホスト上でコンテナを冗長化するReplicaset
複数ホスト上に存在する複数Podを無停止更新(ローリングアップデートとロールバック)
Podをクラスター内外に公開する3つのServiceタイプ(ClusterIP,NodePort,LoadBalancer)とそれらのメリット・デメリット
Podをクラスター外にLayer7ロードバランサーで公開(Ingress)
Podに環境変数などをインジェクトしたいが、Valueをリユーズしたい(ConfigMap Volume mount)
Kubernetesクラスター上でPod内のDockerに永続Volumeをマウントを理解し、コンテナ内のデータをクラスターノード上に永続的に保存(Persistent Volume, Persistent Volume Claim)
命令的コマンド・宣言的なYAMLの比較をし、DevOpsプラクティスであるIaC(InfrastructureasCode)の利点、実践的なコードに書き方
Docker-Composeで定義されたWebアプリケーション(Nodejs+Python+Redis+Postgres+C#)をK8sの宣言的YAMLに変換し構築
の理解の仕方まで理解できるようになります。
現シリコンバレーDevOpsエンジニア(CKAとCKAD保持)による監修の元、Linuxの簡単な基礎(カーネル・シェル・STDIN・STDOUT・TTY)とDocker(イメージ・コンテナ・VMとの違い・Dockercompose・ネットワーキング・Volume)とKubernetes(Pod,Service,Replica,Deployment,Ingress,ConfigMap,PersistentVolume)の学習にあたり、このコースの特徴・メリット・構成をおさらいします。
1.現役アメリカシリコンバレーDevOpsエンジニア(CKA: Certified Kubernetes Adminitrator)がレクチャー
このコースでは、カナダの大学をCS専攻で卒業し現在アメリカ企業でDevOpsエンジニアとしてKubernetesやDockerをゴリゴリ使っている現役DevOpsエンジニアが図解説で丁寧にレクチャーします
2.理論(レクチャー)と実践(ハンズオンラボ)
理論だけ聞いてても眠くなります。実践的なハンズオンラボがあるので、コマンドを手を動かしながら学べます。
3.抽象的でとっつきにくいコンセプトやアーキテクチャを図解説
コマンドだけでなく、基本から応用までの本質をダイアグラムで頭に残すので、今打っているコマンドが実際に何をしているのか理解しやすくなります。
4.デベロパー向けにLinuxの基本知識とコマンドを解説・デモ
わかりにくい・そして怖いあの黒いターミナル。元バックエンドデベロパー、そして現DevOpsエンジニアと一緒に学んだらもう怖くありません!:)
2ー3年前まで意味不明だったLinuxのコンセプトやコマンドを、「分からなかった目線」で解説するので安心です。
5.北米・ヨーロッパでのDevOpsエンジニアの経験を凝縮
図解付きの丁寧な解説、Linuxの難しいコンセプト、K8sのネットワークダイアグラム、テストやデバッギング、ConfigMap、永続ボリューム、宣言的YAMLの簡単なデモまでの、デベロパーとして知っておくべき基礎を全て網羅しました。
6. 抽象度高めでわかりにくいK8sのネットワーキングを解説し、4つのパターン(ClusterIP,NodePort,LoadBalancer,Ingress)のテスト・デバッギングの仕方を図解説
個人的にK8sで一番難しいと思うネットワーキングを、図解でビジュアライズしながら学びます。このネットワーキングはTrafficがどう流れるのかを図で理解し、デバッギングやテストで役立ちます。
7.命令的コマンド・宣言的なYAMLの比較をし、DevOpsプラクティスを実践
DevOpsのBestPracticeの1つであるIaC(InfrastructureasCode)の利点、実践的なコードに書き方などを紹介します。
8.Docker-Composeで定義されたWebアプリケーション(Nodejs+Python+Redis+Postgres+C#)をK8sの宣言的YAMLに変換し構築
Docker完全入門コースのコーディングチャレンジで使ったサンプルアプリを元に、DockerComposeのYAMLに基づいて今度はK8sのPod,Service,DeploymentのYAMLに変換しディプロイするコーディングチャレンジを追加。
9.幅広いコースをたったの4時間以内に凝縮
講師である自分が学んでいたときのコースを選ぶ目安は、コースの長さでもありました。すでに仕事で忙しいエンジニアなので、10時間以上だとFocusが持たなかったり、冗長で端的にさくっとスパッと学べないことが多いです。そのため、いかに簡潔にコンパクトに学べるかを意識してこのコースを監修しました。週末にさくっと一気に学べます。
生徒さんのエンジニアキャリアアップに役立つコースとなれば嬉しいです。