12 チャプター
47 課題

コース概要

Kubernetes入門コースでは、AWS基礎・実践コースで構築したアプリケーションをKubernetes環境に展開していきます。

まずはローカル環境にMinikubeを使ってKubernetesクラスターを構築し、基本的なリソースの使い方から学びます。最初のパートでは、DeploymentによりNginxのPodをデプロイし、kubectlの基本的なコマンドに慣れていきます。

その後は、

・PostgreSQLをStatefulSetで構築 ・JobによるDBマイグレーション ・CronJobによるバッチ処理の実行 ・Deployment, ServiceによるAPIのデプロイ

などを通じて、より実践的な構成に進んでいきます。環境変数の管理にはConfigMapとSecretを使い、Podへ適切にマウントしていく方法も学びます。

アプリケーションの公開については、まずはNodePortによる仮公開を行い、次にIngress(Nginx Ingress Controller)を導入し、L7レベルでのルーティング設定を行います。ローカル環境の/etc/hostsを編集して、カスタムドメインによるアクセスも体験します。

終盤では、Kubernetesの運用や監視に必要な知識として、livenessProbeやreadinessProbeの設定、CPUやメモリリソースの制限と監視方法、Horizontal Pod Autoscaler(HPA)によるスケーリングの実践も行います。

さらに、ラップアップ編としてServiceの4種類(ClusterIP、NodePort、LoadBalancer、Headless)の違いや、LoadBalancerとIngressの使い分けに関する動画も多数用意しました。

最終課題では、Kubernetesの内部アーキテクチャ(kube-api-server、kubeletなど)についても深く学びます。

Kubernetesの学習に挫折した方でも、実際に手を動かしながらその魅力と便利さを実感できるように設計しました。このコースを突破すれば、Kubernetesに対する難しいイメージや恐怖心を克服できるはずです。

学習ポイント

  • MinikubeによるローカルKubernetes環境の構築
  • StatefulSetによるPostgreSQLの構築
  • Job / CronJob によるDBマイグレーションとバッチ処理
  • ConfigMap / Secret による環境変数の管理
  • NodePort / Ingress(Nginx Ingress Controller)による公開設定
  • livenessProbe / readinessProbe による運用監視
  • HPA(Horizontal Pod Autoscaler)によるスケーリング
  • Serviceの4種類(ClusterIP / NodePort / LoadBalancer / Headless)の使い分け
  • Kubernetesの内部アーキテクチャの深い理解

構成図

Kubernetes 入門コース 構成図
Ch.01 Kubernetesの世界へようこそ!
01 Kubernetes 入門コースの全体像を把握する
02 Kubernetesは、「技術界の東大理三?」学習のアンチパターンと挫折しないためのコツ
03 【徹底比較】ECSよりKubernetesの方が優れている6つの強み
04 Kubernetes主要リソースをAWSリソースで例えてみた
05 Kubernetesのマニフェストファイルの読み方について理解する
Ch.02 Kubernetesの主要リソースを操作して雰囲気に慣れよう
01 kubectlコマンドをインストールし、パターンに慣れる
02 Kubernetesをローカル環境で動かすためにMinikubeを導入
03 【動画】Pod、Nodeとは?
04 Nginxを単体のPodで起動してみよう
05 【動画】DeploymentでNginxを3台起動してみる
Ch.03 Kubernetes入門コースで構築する内容の全体像を知る
01 【動画】Kubernetes入門コースで構築する内容の全体像を把握する
02 【動画】Kubernetes(Minikube)とローカル環境の違いについて知る
03 GitHubリポジトリ cloud-pratica-backendリポジトリをforkする
Ch.04 StatefulSetによりPostgres DBを構築する
01 【動画】ローカル環境でPostgres DBを構築する全体像を知る
02 StatefulSet、PersistentVolume、PersistentVolumeClaimとは?
03 Secretとは?
04 【動画】StatefulSetでPostgres DB を起動する
05 ポートフォワーディングによりTablePlusからDBの中身を見る
06 Service (Headless) とは?
07 【動画】Service (Headless) を通してPostgresのPodにアクセスする
Ch.05 JobによりDBのマイグレーションを行う
01 Jobとは?
02 MinikubeでDockerイメージを参照する手順
03 【動画】Jobによりdb-migratorのPodを単発実行する
Ch.06 CronJobによりバッチ処理を行う
01 CronJobとは?
02 ConfigMapでSlack Metricsの環境変数を設定する
03 【動画】CronJobを使ってバッチ処理を実行する
04 【復習】PostgresのStatefulSetにてデータが永続化されているか確認する
Ch.07 DeploymentでSlack Metrics APIを構築する
01 Deploymentとは?
02 裏で勝手に作られているReplicaSetとは?
03 【動画】DeploymentでSlack Metrics APIを構築する
04 【チャレンジ課題】新しいDockerイメージでAPIのPodをデプロイする
Ch.08 ClusterIPを通してAPI用のPodへアクセスする
01 Service(ClusterIP) とは?
02 【動画】ClusterIPを通してAPI用のPodへアクセスする
Ch.09 NodePortでAPIをクラスターの外部へ仮公開する
01 NodePortとは?
02 【動画】NodePortでAPIをKubernetesの外部へ公開する
Ch.10 IngressでAPIをクラスターの外部へ公開する
01 Ingress、Ingress Controllerとは?
02 【動画】Ingress + Ingress ControllerでAPIをKubernetesの外部へ公開する
Ch.11 Kubernetesの運用監視に触れよう
01 Kubernetesの運用監視の全体像をつかもう
02 【動画】Readiness / Liveness / Startup Probe を体験する
03 Metrics Serverを導入して kubectl top を使えるようにする
04 requests / limits を設定して、リソース制限の仕組みを理解しよう
05 HPA(Horizontal Pod Autoscaler)でスケーリングを体験しよう
06 Kubernetesのログ収集の仕組みを理解し、現場で使えるログ調査スキルを身につけよう
Ch.12 Kubernetes入門コース ラップアップ編
01 【動画】Service (Headless、ClusterIP、NodePort、LoadBalancer) の違いについて完全に理解する
02 【動画】Service (LoadBalancer) とIngressの違いについて完全に理解する
03 【動画】Kubernetesのアーキテクチャについて知っておこう
04 Kubernetes入門コースの最終課題を提出する

コース突破者の声

M.O さん 受講完了

k8s理解をこんなに短時間でできる教材は他探してもないだろうと思うくらい良かった。
特にECSで構築した場合に対応する機能を比較しながら説明してくれるので理解しやすかった。
Service, Ingressのところは途中の段階では頭がこんがらがってきたが、最後にまとめがあったので復習できました。

K.Y さん 受講完了

Kubernetesは未知の世界で他の技術と比べて群を抜いて難易度が高いということぐらいしか知らなかったので、逆にワクワクしていました。
りょうまさんが作ってくれた最適なロードマップのおかげで、実際触ってみるとそこまで難しさはないと思いました。独学では時間がかかるからこそ、お金を払ってでもプロから教えていただく重要性を改めて感じました。

T.H さん 受講完了

Kubernetesは一度書籍を利用して学習を試みましたが、kube-apiserver、kubelet、etcd、コントロールプレーンなど辞書的に一からKubernetesの内部構造を知ろうとするアンチパターンの学習方法で進めた結果、完遂する事なく途中で諦めて積読した経験もあり、苦手意識は初期ありました。

S.N さん 受講完了

・Kubernetesの基礎的な書籍を読んでも、頭に入ってこなかったところが、入門コースでは手を動かしながら理解できるので知識の定着が段違いでした。

R.I さん 受講完了

・以前独学でk8sの勉強をしたことがあったが、Pod、Deployment、ReplicaSetなど単体で学び「で…?」という感じだったが実際のアプリケーションやAWSのサービスに置き換えて学ぶことでかなり理解できた気がする!

A.K さん 受講完了

すごいボリュームで、これまでの課題の中で一番時間がかかったかもしれないです。

Y.S さん 受講完了

Kubernetesは実際に触っていたものの、不安要素がかなりあった。
簡易なリソースを触り、バッチ処理やAPI構築などを通じて、実際に手を動かしたことで理解が進みました。

H.M さん 受講完了

非常に分かりやすく勉強になりました!
1年半前に初めてk8sの学習をしたのですが、見事に学習アンチパターンを全部踏み抜いていて笑ってしまいました。その時は見事挫折しました…笑