16 チャプター
94 課題

コース概要

Kubernetes 応用コースでは、入門編で学んだKubernetesの基礎を土台に、より実践的かつ商用レベルの運用に耐える構成を構築していきます。

具体的にはAWSのEKSクラスター上で、以下のような高度な構成や運用ノウハウを段階的に学習していきます。

Kustomizeによるマニフェスト管理

共通の設定を base/ に、環境固有の設定を overlays/ に分離。patches や replacements を活用し、DRYな構成を実現します。

HelmによるOSS導入

Prometheus、Grafana、Fluent Bit などのモニタリングツールを Helm チャートで効率よく導入。values.yaml による環境ごとのカスタマイズにも対応します。

Pod IdentityによるIAM制御

アプリケーションコードに認証処理を書くことなく、Pod単位で IAM ロールを割り当て、AWSリソースへのセキュアなアクセスを実現します。

External Secrets Operatorによる機密情報管理

AWS Secrets Manager から Kubernetes の Secret へ自動同期。環境をまたいだシークレットの一元管理を行い、安全かつスケーラブルな設計を習得します。

Argo CD Image UpdaterによるCI/CD自動化

ECRへのpushをトリガーに、Argo CD Image Updater がGitHubに新しいタグを自動コミットし、Argo CD がその差分を即時適用。完全自動のCDパイプラインを構築します。

ログの転送

Fluent Bitで各ノードのログを収集、加工、フィルタリングし、CloudWatch Logsへ転送します。多くのエンジニアが苦手とするFluent Bitのconfファイルについても手を動かす課題を通してマスターしていきます。

メトリクスの収集と可視化

PrometheusとGrafanaを用いて、Kubernetes上で動作するアプリケーションや各種リソースのメトリクスを収集・可視化していきます。

具体的には、PrometheusをStatefulSetとして自前でデプロイし、Service Discovery機能を活用して各PodのCPU使用率・メモリ使用量・HTTPレイテンシーなどの指標を取得します。

収集したデータはGrafanaに連携し、実際にPromQLを使ってダッシュボードを作成し、リアルタイムでの可観測性を高めていきます。

Istio × ALB ControllerによるL7ルーティング

IstioとALBを連携させ、L7レベルのきめ細かなルーティング制御を実現していきます。

AWSのALBは、TLS終端を行うエントリーポイントとして機能し、ALB ControllerがKubernetesリソース(IstioのIngressやServiceなど)をもとにリスナールールやターゲットグループの設定を自動生成します。

ALBからのリクエストは、Istio Ingress GatewayのPodに転送され、その後IstioのGatewayリソースでドメイン・ポート・プロトコルを定義し、VirtualServiceでパスやヘッダーに応じたルーティングポリシーを構成します。

この構成により、以下のような高度なルーティングが可能になります。

・パスベース / ヘッダーベースのルーティング ・特定ユーザーや環境にのみ特定バージョンを配信するカナリアリリース ・マイクロサービス間通信の可視化とセキュリティ制御(mTLS)

ALBのマネージド性とIstioの柔軟性を組み合わせることで、クラウドネイティブな商用レベルのトラフィックコントロールをKubernetes環境上で実現できるチャプターとなっています。

総集編: 本番環境の構築

Kubernetes 応用コースの総集編として本番環境の構築に挑戦します。

これまで構築してきたstg環境のTerraformのコードやKubernetesのマニフェストファイルをベースに複製していきます。

私自身も環境をまるっと複製する経験を通して、Kubernetes力をつけることができました。このチャプターを通して、これまで断片的に身についてきたKubernetesの知識が一気に自分の骨肉として武器になるはずです!

学習ポイント

  • KustomizeによるDRYなマニフェスト管理
  • HelmチャートによるOSSの効率的な導入
  • Pod IdentityによるPod単位のIAM制御
  • External Secrets Operatorによる機密情報管理
  • Argo CD / Image UpdaterによるGitOpsベースのCI/CD
  • Fluent Bitによるログの収集・加工・転送
  • Prometheus + Grafanaによるメトリクスの収集と可視化
  • Istio × ALB ControllerによるL7ルーティング
  • 総集編としてstg環境を複製し本番環境を構築

構成図

Kubernetes 応用コース 構成図
Ch.01 Kubernetes 応用コースのオンボーディング
01 【動画】Kuberenetes 応用コースの全体像を把握する
02 Kuberenetes 応用コースで必要なAWSのコスト感を掴む
03 Kubernetes 応用コースを学習する前に突破しておくべきコースについて
04 Kubernetes 応用コースでのGitHubリポジトリの運用方法を知る
05 【動画】Kubernetes上での構築におけるデバッグのコツを知る
Ch.02 Kustomize を使って、複数環境のマニフェストをDRYに管理する
01 Kustomizeとは?
02 【動画】Minikubeで構築した環境にKustomizeを導入する
03 【深掘り】KustomizeのStrategic Merge Patch について完全に理解する
Ch.03 EKSのセットアップを行う
01 EKSとは?
02 【動画】手動でEKSクラスターを作成する
03 【動画】手動でノードグループを作成する
04 【コスト削減】KubernetesのコストをCost Cutterで削減する
05 kubeconfigを設定し、EKSに向けてkubectlを実行できるようにする
06 Namespaceを用意する
Ch.04 Kubernetesダッシュボードを構築する
01 Helmを使ってKubernetesダッシュボードを構築する全体像を知る
02 ServiceAccountとは?
03 RBAC(Role-Based Access Control)とは?
04 Helm入門 - Kubernetesマニフェストの賢い再利用術
05 【動画】Cloud Praticaリポジトリを参考にKubernetesマニフェストを構築する方法
06 Helmを使ってKubernetesダッシュボードを構築する
Ch.05 External Secrets Operatorsにより、Secrets Managerから認証情報を取得する
01 【動画】External Secrets OperatorによりSecrets Managerの環境変数を取得する全体像を把握する
02 【動画】Pod Identityとは?
03 【動画】ESO用のPod Identityの設定を行う
04 ESOによりSecretを動的に作成する
Ch.06 EKS上にアプリケーションを構築する
01 【動画】[EKS] Jobによりdb-migratorのPodを単発実行する
02 [EKS] CronJobによりバッチ処理を実行する
03 [EKS] Deployment、ServiceによりSlack Metrics APIを構築する
04 EKS上でワーカー(SQS) 用Podを構築する
05 kubectl execでコンテナにログインしてPodからSES経由でメール送信を行う
06 [EKS] HPAによりスケーリングを行う
Ch.07 AWS Load Balancer ControllerでAPIを公開する
01 AWS Load Balancer Controllerとは?
02 【動画】AWS Load Balancer ControllerでAPIを公開する全体像を理解する
03 【動画】AWS Load Balancer ControllerでAPIを外部公開する
04 【警告】ノードのキャパシティーの割り当てでPod数の上限が来た時の対応について
05 【動画】EKS上のPodのネットワークについて深ぼる
Ch.08 Argo CD によるGitOps ベースのデプロイを体験する
01 GitOpsとは? - Kubernetesの手動デプロイは大変
02 Argo CDとは?
03 HelmでArgo CD本体をデプロイする
04 Argo CDとGitHubを手動で連携する
05 Argo CDの画面からアプリケーションを登録する
06 【動画】Argo CDの画面での操作方法について理解する
07 【動画】Argo CDによる自動デプロイを体験する
Ch.09 Argo CDを本格的に運用する
01 Argo CDに設定するGitHubの認証情報をExternalSecretから作成する
02 Argo CD Application (slack-metrics) を作成する
03 Argo CD自身を管理するArgo CD Application を作成する
04 HelmでインストールしたリソースをArgo CDで管理する
05 Argo CDをIngressで外部公開する
06 【動画】Argo CD Image Updaterを使ってイメージタグを自動コミットする
07 Argo CDをGitHubのSSOでログインできるようにする
08 【動画】Argo CDの実務で使うテクニックを知る
Ch.10 Fluent Bitにより、CloudWatchへログを転送する
01 Fluent Bitとは?
02 【深掘り】Fluent Bit 超特訓
03 DaemonSetとは?
04 【動画】DaemonSetでFluent BItを動かし、PodのログをCloudWatch Logsへ転送する
Ch.11 PrometheusによりPodのメトリクスを収集する
01 Prometheus入門
02 PromQL道場
03 PrometheusによりPodのメトリクスを収集する
Ch.12 Grafana で、収集したメトリクスを可視化する
01 Grafanaとは? - 強力なダッシュボード作成OSS
02 HelmでGrafanaを構築する
03 IngressでGrafanaを外部公開する
04 GrafanaのデータソースとしてPrometheusを登録する
05 【動画】GrafanaにてPromQLを書いてダッシュボードを作成する
06 GrafanaをGitHubのSSOでログインできるようにする
Ch.13 Istioにより安全かつ柔軟なマイクロサービス通信を確立する
01 Istioとは? サービスメッシュにより実現される安全かつ柔軟なマイクロサービス通信
02 【動画】マイクロサービスのカナリアリリースの例を通してIstioと仲良くなる
03 【動画】ALB Controller + Istio 構成の全体像を理解する
04 Istioのコントロールプレーン(istiod) をHelmで構築する
05 Istio Ingress Gateway を構築する
06 VirtualServiceを作成し、L7のルーティングを定義する
07 Namespace app で起動するPodにEnvoyを自動注入する
08 Istio用のIngressを作成し、ALBと繋ぎこみを行う
09 【Tips】Istio × Argo Rollouts でカナリアリリースを実現するための手順を知る
10 Istioチャプターの最終理解度チェック問題
Ch.14 Kubernetes応用コース ラップアップ編
01 【動画】EKS関連リソースをTerraformでコード化する
02 EKS のバージョンアップのメンテナンスの辛みと手順を知る
03 Kubernetes 応用コースの最終課題を提出する
04 [stg] EKSクラスターをお掃除する
Ch.15 本番環境構築編 - Argo CDの構築まで
01 Kubernetes の環境を複製する全体像を把握する
02 【動画】K9s を自由自在に使いこなせるようになろう
03 【事前準備】RDS, NATインスタンス, 踏み台サーバを起動する
04 TerraformによりKubernetes 関連のAWSリソースを作成する
05 [prd] Namespaceを作成する
06 [prd] AWS Cost Cutterの動作確認 (Pod Disruption Budgetとは)
07 [prd] HelmによりExternal Secrets Operatorを構築する
08 [prd] HelmによりAWS Load Balancer Controllerを構築する
09 [prd] HelmによりArgo CDを構築する
Ch.16 本番環境構築編 - Argo CDによる量産フェーズ
01 [prd] External Secrets OperatorとALB ControllerをArgo CD管理にする
02 [prd] Argo CDにより Slack Metricsを構築する
03 [prd] JobによりDBマイグレーションを単発実行する
04 [prd] Argo CDによりFluent Bit ログ転送基盤を構築する
05 [prd] Argo CDによりPrometheusを構築する
06 [prd] Argo CDによりGrafanaを構築する
07 [prd] Argo CDによりIstioを構築する
08 Kubernertes の本番環境構築のまとめとお掃除

コース突破者の声

Y.K さん 受講完了

CloudPraticaに入会した一番の目的は、このKubernetes応用コースを受講することでした。
チャプタータイトルを眺めただけで「これは早く学びたい」と感じたのを覚えています。

J.T さん 受講完了

やりきりました!!他のコースと比べて圧倒的にレベルです!!!毎回の課題がとても重くてキツかったです。
Kubernetesの構築はAWSコンソール、Terraform、Kubernetesリソースのコード、Argo CDを行き来しながらでしたので、やる事が多くとても忙しかったです。
ですが、これをやりきったことでかなり自信がつきました。
現場のレベルの構成をハンズオン形式で体感ができたので、もう何も怖いものはありません。
そして、Argo CDやIstioという難易度最上級の技術を触っているのでかなりレベルアップしたと感じています。

N.O さん 受講完了

これまでKubernetesやArgoCDは触ったことはあるが、応用コースを終えて格段にレベルが違うと感じました。

M.I さん 受講完了

CloudPraticaを始めるまでKubernetesは名前だけ知っているという状態で、この技術がどういう問題を解決していてどういうところに辛みがあるのかを全然知りませんでした。

K.A さん 受講完了

実務レベルのハイレベルなKubernetes構成を学習でき、大変満足しております!
Kustomizeを使用したマニフェストの管理方法や、Helmチャートを使用したKubernetesリソースのデプロイ方法など、Kubernetesを扱う上での必須となるお作法を習得することができたと感じております。

S.M さん 受講完了

非常に勉強になりました!
Kubernetesは過去に技術書で3冊ほど遊んでいたものの、実務レベルには全然技術力が足りないと自覚していたのですが、本コースを通じて少し自信がつきました。

H.N さん 受講完了

最初の応用コース全体像を確認するオンボーディング動画を見た感想としては、扱うKubernetesリソースの多さもそうですし、Helm、Kustomize、Argo CD、AWS Load Balancer Controller、Istio、External Secrets Operator、Pod Identityといった初めて知る技術スタックも多くて、本当に無事完走出来るか不安になる程、学ぶ量と質が今までとは桁違いに凄いと思いました!!