#インフラ
301 件の記事
Docker 上級 #5 リソース制限と cgroups
コンテナのメモリ限界、CPU 限界、OOMKilled の診断、JVM や Node のようなランタイムがコンテナ限界をどう認識するか、そして ulimit / pids のような別の隔離手段まで。cgroups v2 の上で動く限界の正確な動作を整理します。
K8s 中級 #2 PV / PVC / StorageClass — 永続データモデル
[K8s 基礎 #6](/ja/posts/k8s-basics-6) までマニフェストに埋まっていた設定とシークレットを外部オブジェクトに分離しましたが、もう 1 次元が残っています — データそのものです。コンテナ内のファイルシステムはコンテナが死ねば一緒に消えますが、DB データ・ユーザーアップロード・メトリクス時系列は Pod のライフサイクルの先まで生き残らなければなりません。この記事ではその空白を埋める 3 つのオブジェクト `PersistentVolume`、`PersistentVolumeClaim`、`StorageClass` の三角関係、静的・動的プロビジョニング、`accessModes`、`reclaimPolicy`、`volumeBindingMode`、そして [#1](/ja/posts/k8s-intermediate-1) で短く触れた `volumeClaimTemplates` がその上で実際に何を作り出すのかを 1 サイクルでまとめます。
AWS中級 #5 Route 53 — ドメインと DNS
AWS のマネージド DNS、Route 53。ドメイン登録と Hosted Zone、A / AAAA / CNAME / Alias レコードの違い、そして Simple / Failover / Latency / Geolocation ルーティングポリシーまで。
Docker 上級 #4 SBOM と署名 — サプライチェーンセキュリティの入口
このイメージの中に何が入っているかを機械が読める形 (SBOM) で作り、そのイメージを誰が作ったのかを cosign 署名で検証します。xz 事件以降標準になったサプライチェーンセキュリティ道具一式を整理します。
K8s 中級 #1 StatefulSet / DaemonSet / Job / CronJob — Deployment ではない他のコントローラ
[K8s 基礎 #4](/ja/posts/k8s-basics-4) の Deployment は stateless ワークロードの上に立つコントローラです。同じ Pod が複数互いに同じだと仮定し、消えてもまた立てればいいという単純なモデルです。しかしアイデンティティとディスクが必要な DB、ノードごとに正確に 1 つずつ立つべきエージェント、1 度実行して終わるべきマイグレーション、毎日回るバックアップ — この 4 つは Deployment では表現されません。この記事ではその空白を埋める 4 つのコントローラ StatefulSet、DaemonSet、Job、CronJob を 1 編にまとめます。
AWS中級 #4 RDS — マネージド DB、バックアップ、パラメータグループ
AWS のリレーショナル DB マネージド、RDS。EC2 上 DB との比較、自動バックアップとスナップショットと PITR、Multi-AZ、パラメータ / オプショングループ、そしてマイナー vs メジャーアップグレードの運用。
Docker 上級 #3 イメージセキュリティ — non-root, distroless, Trivy スキャン
コンテナセキュリティの基本道具を一箇所に。USER で非特権ユーザに落とす、read-only ルートと tmpfs、capabilities drop、distroless で攻撃面を狭める、Trivy/Grype の脆弱性スキャン、hadolint の Dockerfile lint まで。
K8s 基礎 #7 Namespace とラベル — クラスタの整理法
シリーズを追っている間、1 つの事実が静かに通り過ぎました — 今まで作った Pod、Deployment、Service、ConfigMap、Secret が全て default namespace 1 か所に入っていたという点。そして [#4](/ja/posts/k8s-basics-4) の selector からラベルもずっと見ていましたが整理はしていませんでした。この記事はその 2 つの道具 — Namespace とラベル — でクラスタを人が読める形に整える方法を扱い、シリーズ 7 編の到達点で次のトラック (K8s 中級) を短く予告します。
AWS中級 #3 S3 — 静的ホスティング、presigned URL
AWS で最も古いオブジェクトストレージ S3。バケットの形と名前のグローバル一意性、ポリシーと Public Access Block、静的サイトホスティング、presigned URL、そしてストレージクラスで費用を下げる場まで。
Docker 上級 #2 マルチアーキテクチャイメージ — amd64 と arm64 を一束に
Apple Silicon でビルドしたイメージが運用サーバで動かない事故はマルチアーキビルド一行で消える。manifest list の正体、QEMU emulation のコスト、ネイティブ ARM ビルダー、そして docker buildx imagetools で結果を検証する方法まで。
K8s 基礎 #6 ConfigMap と Secret — 設定の分離
[#5](/ja/posts/k8s-basics-5) まで作ったマニフェストには 1 つ違和感が残っています — イメージタグ・ポート・ドメインのような値がマニフェストに直接書かれたままという点。この記事ではその空白を埋める 2 つのオブジェクト ConfigMap と Secret を整理します。12-factor の「設定は環境に置く」を K8s でどう解くか、env / envFrom / volume の 3 つの注入方式、Secret は本当の暗号化ではないという 1 行、設定が変わったとき Pod 再起動が必要な理由までを 1 サイクル追います。