// Course 06 — Kubernetes
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に対する難しいイメージや恐怖心を克服できるはずです。
k8s理解をこんなに短時間でできる教材は他探してもないだろうと思うくらい良かった。
特にECSで構築した場合に対応する機能を比較しながら説明してくれるので理解しやすかった。
Service, Ingressのところは途中の段階では頭がこんがらがってきたが、最後にまとめがあったので復習できました。
Kubernetesは未知の世界で他の技術と比べて群を抜いて難易度が高いということぐらいしか知らなかったので、逆にワクワクしていました。
りょうまさんが作ってくれた最適なロードマップのおかげで、実際触ってみるとそこまで難しさはないと思いました。独学では時間がかかるからこそ、お金を払ってでもプロから教えていただく重要性を改めて感じました。
Kubernetesは一度書籍を利用して学習を試みましたが、kube-apiserver、kubelet、etcd、コントロールプレーンなど辞書的に一からKubernetesの内部構造を知ろうとするアンチパターンの学習方法で進めた結果、完遂する事なく途中で諦めて積読した経験もあり、苦手意識は初期ありました。
・Kubernetesの基礎的な書籍を読んでも、頭に入ってこなかったところが、入門コースでは手を動かしながら理解できるので知識の定着が段違いでした。
・以前独学でk8sの勉強をしたことがあったが、Pod、Deployment、ReplicaSetなど単体で学び「で…?」という感じだったが実際のアプリケーションやAWSのサービスに置き換えて学ぶことでかなり理解できた気がする!
すごいボリュームで、これまでの課題の中で一番時間がかかったかもしれないです。
Kubernetesは実際に触っていたものの、不安要素がかなりあった。
簡易なリソースを触り、バッチ処理やAPI構築などを通じて、実際に手を動かしたことで理解が進みました。
非常に分かりやすく勉強になりました!
1年半前に初めてk8sの学習をしたのですが、見事に学習アンチパターンを全部踏み抜いていて笑ってしまいました。その時は見事挫折しました…笑