インフラ

K8s 中級 #6 オートスケーリング — HPA / VPA / Cluster Autoscaler
読了 24分

K8s 中級 #6 オートスケーリング — HPA / VPA / Cluster Autoscaler

[#5](/ja/posts/k8s-intermediate-5) まで扱ったモデルは単一 Pod のリソースと健康信号の次元でした。しかし運用の負荷は時間帯・ユーザーパターン・イベントに従って揺れ、人が毎回 `replicas` 値を手で合わせることはすぐに限界にぶつかります。この記事ではその空白を埋める 3 つの次元のオートスケーリング — Pod 個数を自動で増減する `HPA`、Pod のリソース要求・上限を自動で推奨・調整する `VPA`、そしてノード自体を自動で追加・削除する `Cluster Autoscaler` を 1 サイクルでまとめます。metrics-server という前提、HPA の `autoscaling/v2` マニフェストとアルゴリズム、scale up・down 非対称の `behavior`、custom metric と KEDA、VPA の 3 コンポーネント、HPA・VPA の衝突、Karpenter まで扱います。

RHEL 上級 #2 カーネルチューニング — sysctl、tuned、kdump
読了 10分

RHEL 上級 #2 カーネルチューニング — sysctl、tuned、kdump

ランタイムにカーネル動作を調整する sysctl の使い方と永続設定の分離 (/etc/sysctl.d/)、ワークロードプロファイルを 1 行で切り替える tuned、そしてカーネルパニック時点のメモリダンプを取る kdump 設定と crash で解析する流れまで 1 サイクルで整理します。よく触る vm.swappiness、net.core.somaxconn のようなキーと tuned プロファイル別の違いも合わせて扱います。

AWS上級 #2 ECR — イメージレジストリ
読了 9分

AWS上級 #2 ECR — イメージレジストリ

Amazon ECR private / public、IAM 認証、docker push / pull、イメージスキャン、ライフサイクルポリシー、マルチアーキテクチャ (linux/amd64 + arm64) まで — ECS と Lambda が持っていくイメージをどこに保管するか。

Docker 実戦 #2 Django + PostgreSQL compose — 二つのコンテナを一束に
読了 8分

Docker 実戦 #2 Django + PostgreSQL compose — 二つのコンテナを一束に

Django アプリと PostgreSQL を docker compose 一ファイルに束ねる。マイグレーション entrypoint、depends_on の healthcheck 依存、データボリューム、.env 分離、collectstatic まで — compose が解いてくれる構成を運用形に。

K8s 中級 #5 Health check — liveness / readiness / startup probe
読了 20分

K8s 中級 #5 Health check — liveness / readiness / startup probe

[#4](/ja/posts/k8s-intermediate-4) まで Pod のリソースモデルをまとめたとすれば、この記事は K8s がコンテナの「生存」と「トラフィックを受ける準備」をどう判断するかのモデルです。3 種類の probe — liveness、readiness、startup — がそれぞれ違う役割を担い、誤って設定すると無限再起動ループ・トラフィック取りこぼし・起動失敗のような運用事故に直結します。`httpGet` / `tcpSocket` / `exec` の 3 つの検査方式、`initialDelaySeconds` / `periodSeconds` / `failureThreshold` のような共通パラメータ、liveness に外部依存を入れたときの cascading failure、`terminationGracePeriodSeconds` と PreStop フックが描く graceful shutdown まで 1 サイクルでまとめます。

RHEL 上級 #1 ブートプロセス — GRUB2、dracut、レスキューモード
読了 11分

RHEL 上級 #1 ブートプロセス — GRUB2、dracut、レスキューモード

RHEL マシンに電源が入ってからログインプロンプトが出るまでの全体の流れを段階別に整理します。UEFI/BIOS、GRUB2 設定と grub2-mkconfig、initramfs と dracut 再生成、systemd ターゲットと default.target、rescue/emergency モード、GRUB 編集を経て root パスワードを復旧する手順まで 1 サイクルで扱います。

AWS上級 #1 ECS と Fargate — コンテナのデプロイ
読了 12分

AWS上級 #1 ECS と Fargate — コンテナのデプロイ

ECS の動作 (vs EKS)、Cluster / Service / Task / Task Definition の 4 つの構成要素、EC2 launch type vs Fargate、ALB / VPC との接続、最初のコンテナデプロイまで — AWS の上にコンテナをどう載せるかを一気に。

Docker 実戦 #1 FastAPI コンテナ化 — uv・マルチステージ・non-root
読了 9分

Docker 実戦 #1 FastAPI コンテナ化 — uv・マルチステージ・non-root

実戦シリーズの最初の記事。最も典型的なシナリオである FastAPI アプリをコンテナとして束ねる。uv ベースのスリムなベース、マルチステージでビルド依存とランタイム依存を分離、non-root ユーザ、HEALTHCHECK まで — 運用にすぐ乗せられる形で。

K8s 中級 #4 resources.requests / limits — Pod のリソース要求と上限
読了 17分

K8s 中級 #4 resources.requests / limits — Pod のリソース要求と上限

[#3](/ja/posts/k8s-intermediate-3) まで外部トラフィックがクラスタの中へ入ってくる道をまとめました。この記事の視点は再び Pod の中に入ってきます — コンテナが CPU とメモリをどう要求し、どう制限を受けるかのモデルです。`resources.requests` はスケジューラがノードを選ぶときに見る値で、`resources.limits` は kubelet がランタイムに強制する上限です。この 2 つの分離、QoS クラス(Guaranteed / Burstable / BestEffort)、CPU throttling と OOMKilled の違い、JVM・Go ランタイムの cgroup 認識、`LimitRange` で namespace のデフォルトをかけるパターンまで 1 サイクルでまとめます。

RHEL 中級 #7 コンテナ入門 — Podman/Buildah/Skopeo
読了 10分

RHEL 中級 #7 コンテナ入門 — Podman/Buildah/Skopeo

RHEL 9 のコンテナ標準は Podman です。Docker とほぼ同じコマンドを使いながらもデーモンがなく、rootless で回り、systemd と一体のように調和する構造を運用観点から見ます。Buildah でイメージをビルドし、Skopeo でレジストリの間を移すフローまで 1 サイクルで整理します。

AWS中級 #7 CloudFront で静的サイトを配信
読了 9分

AWS中級 #7 CloudFront で静的サイトを配信

AWS のグローバル CDN、CloudFront。Origin / Behavior / Cache Policy の流れ、S3 + CloudFront 静的ホスティングパターン、OAC で S3 を安全に隠す方法、そして無効化 (invalidation) の運用。

Docker 上級 #6 プロダクション運用 — graceful shutdown、healthcheck、restart
読了 9分

Docker 上級 #6 プロダクション運用 — graceful shutdown、healthcheck、restart

PID 1 の信号処理、SIGTERM グレースフル終了の正確な流れ、init と dumb-init の役割、restart 方針の深掘り、liveness vs readiness の概念。一コンテナをプロダクションで安定的に回す細部をまとめて整理します。Docker 上級シリーズの締めくくり。