#Kubernetes
136 件の記事

アプリ配備の骨格
第21章で立ち上げた空の EKS クラスタの上に、サンプルサービス myshop-api を一つのまとまりのマニフェストで配備します。Namespace · ServiceAccount · ConfigMap · Secret · Deployment · Service · Ingress · HPA · PodDisruptionBudget の9つのオブジェクトを一連の流れで整理し、AWS Load Balancer Controller で ALB を自動プロビジョニングします。そのまとまりを Helm チャートで抽象化して dev / prod に異なる values で適用する方法までを一度にたどります。

シークレット運用
5部の3番目の章です。K8s Secret の base64 の限界と etcd encryption-at-rest の意味から始め、保存 · 回転 · 注入 · 監査の4軸でシークレットライフサイクルを扱います。sealed-secrets · external-secrets · SOPS の3つのオプションの比較、IRSA と組み合わせたパスワード0運用 (AWS API は IRSA、DB は RDS IAM auth)、envFrom vs mount の回転の違い、RBAC でネームスペース単位の分離、Audit log と GuardDuty の監査の観点までを本格的な運用マニュアルとして束ねます。

コスト最適化
5部の2番目の章です。26章で5つの出所として挙げたコスト項目を本格的に扱います。コンピュート (ノード) と付加 (LB · ストレージ · ネットワーク · コントロールプレーン) の2軸、requests のコストの意味、VPA · Goldilocks · KRR の right-sizing、Spot · Karpenter · Cluster Autoscaler の決定ツリー、bin packing と descheduler、OpenCost · Kubecost の可視化、namespace ラベル単位の chargeback / showback、PV · ネットワークコストまでを一連の流れで束ね、翌月の請求書 review チェックリストで締めくくります。

フルスタックアプリを EKS に配備する
6部キャップストーン — 本書の最後の章です。React の Next.js (App Router + RSC + Server Actions) アプリと、モダンPython の FastAPI (SQLAlchemy 2.x + Pydantic v2) アプリを、同じ TODO ドメインの上で1つの EKS クラスタに一緒に配備します。Terraform + Karpenter + IRSA + ALB Controller + ExternalDNS + cert-manager のクラスタセットアップから、RDS + External Secrets + RDS IAM auth の DB 連携、Helm + ArgoCD ApplicationSet の環境別配備、Prometheus + Grafana + Loki + OpenTelemetry の可観測性、HPA + Karpenter のオートスケーリング、k6 負荷テスト + OpenCost コスト推定、そして第26章 + 第30章の運用サイクルの適用までを13本の PR で一連の流れとして扱います。第1章〜第30章のすべての道具が1つのシステムの中でどう噛み合うのかの視野が、本キャップストーンで手に入ります。

モニタリング · アラート
第24章まで整った myshop-api はコードから配備まで自動化されましたが、その動作が見えなければ運用は回りません。本章は EKS クラスタの可観測性スタックを載せます。kube-prometheus-stack で Prometheus · Grafana · Alertmanager を一括導入し、ServiceMonitor / PrometheusRule で myshop-api メトリックと 4 golden signals アラートを標準化し、Loki でログを、CloudWatch Container Insights で AWS 連携メトリクスと長期保管を押さえ、severity · team ルーティングで Slack / PagerDuty の on-call 体制までを整理します。

運用チェックリスト
4部 (EKS 実戦) の最後の章です。クラスタを安定的に立ち上げる作業と、一年のあいだ安全に運用する作業は別の質感の仕事です。EKS マイナーアップグレードのサイクル、ノードグループ交換のパターン、RDS の PITR と四半期復旧訓練、Karpenter + Spot でコストを抑える道、kube-bench · Trivy · Kyverno でセキュリティ点検を定期化する流れまで整理します。最後に 4部6章 (第21 ~ 26章) の振り返りと、1 ~ 4部26章が手に何を残したかを一つのまとまりとして押さえます。

可観測性
運用クラスタの視野を作る3つの軸 — メトリクス (Prometheus + kube-state-metrics + node-exporter)、ログ (Loki)、トレース (OpenTelemetry + Tempo) — と可視化 (Grafana)、アラート (Alertmanager) の標準スタックを整理します。kube-prometheus-stack の ServiceMonitor・PrometheusRule、PromQL・LogQL の一行の例、そしてカーディナリティ・保存・アラート SNR・golden signals の運用ガードレールまでを一連の流れで扱います。
Certified Kubernetes Administrator (CKA) #10 Workloads 1: Deployment の深掘り、ReplicaSet、rolling update/rollback
Certified Kubernetes Administrator (CKA) シリーズの 10 番目の記事です。運用者が最も頻繁に扱うワークロードである Deployment を深く見ていきます。Deployment→ReplicaSet→Pod の階層とそれを束ねるラベル selector、kubectl で作成とスケールを処理する方法、rollingUpdate 戦略 (maxSurge/maxUnavailable) で無停止アップデートを保証する条件、そして kubectl rollout でバージョンを追跡して戻す rollback まで手に覚えさせます。
Certified Kubernetes Application Developer (CKAD) #5 Workloads 1: Deployment、ReplicaSet、ローリングアップデートとロールバック
Certified Kubernetes Application Developer (CKAD) シリーズの 5 番目の記事です。アプリデプロイの中心である Deployment を命令型で作成し、Deployment・ReplicaSet・Pod の関係とスケールを整理します。rollingUpdate の maxSurge・maxUnavailable の意味、kubectl set image で新しいバージョンをデプロイする流れ、kubectl rollout で状態を追跡し、失敗したバージョンを undo で戻すロールバックシナリオを手で実習します。
Certified Kubernetes Security Specialist (CKS) #3: CIS benchmark (kube-bench)、コンポーネントセキュリティ、Ingress TLS、バイナリ検証
Certified Kubernetes Security Specialist (CKS) シリーズの 3 番目の記事です。Cluster Setup ドメインの残り半分である、クラスター自体のハードニングを扱います。CIS Kubernetes benchmark とは何か、kube-bench で control plane とノードを点検して PASS/FAIL/WARN の結果を読み remediation を適用する方法、apiserver と kubelet の危険なフラグを安全な値に変える手順、Ingress に TLS を付ける方法、そしてダウンロードしたバイナリを sha256sum で検証する流れまで、コマンドとマニフェストで手に覚えさせます。

ConfigMap と Secret
ConfigMap と Secret で設定とパスワードをマニフェスト本体から分離します。12-factor の「設定は環境に置く」を K8s で解く形、env・envFrom・volume の3つの注入方式、Secret の base64 が暗号化ではないという一行、そして設定変更時に Pod 再起動が必要な理由までを扱います。

Deployment と ReplicaSet
宣言型デプロイとローリングアップデートを扱います。Deployment / ReplicaSet / Pod の三段の関係をつかみ、replicas: 3 の self-healing、RollingUpdate の maxSurge / maxUnavailable、rollout undo によるロールバック、Deployment が解かないワークロード (StatefulSet・DaemonSet・Job) までを一連の流れで整理します。