Kubernetes

Certified Kubernetes Administrator (CKA) #5 HA クラスター: 複数 control plane、外部 etcd cluster
読了 11分

Certified Kubernetes Administrator (CKA) #5 HA クラスター: 複数 control plane、外部 etcd cluster

Certified Kubernetes Administrator (CKA) シリーズの 5 本目の記事です。単一 control plane の単一障害点をなくす高可用性 (HA) クラスターを扱います。stacked etcd と external etcd という 2 つのトポロジーのトレードオフ、apiserver の前段ロードバランサーと --control-plane-endpoint、etcd クォーラムと耐障害性、control plane ノードのジョイン、メンバーシップの検証までを概念中心に整理します。

Certified Kubernetes Administrator (CKA) #4 kubeadm でのクラスターインストール: 単一 control plane のブートストラップ
読了 10分

Certified Kubernetes Administrator (CKA) #4 kubeadm でのクラスターインストール: 単一 control plane のブートストラップ

Certified Kubernetes Administrator (CKA) シリーズ 4 編です。空の Linux マシンに kubeadm でゼロから Kubernetes クラスターを立てます。swap の無効化とカーネルモジュール、containerd のインストールといった事前準備から、kubeadm init で control plane をブートストラップし、CNI を入れてノードを Ready にし、kubeadm join でワーカーを付ける全工程をコマンド中心に整理します。

Certified Kubernetes Administrator (CKA) #3 クラスターアーキテクチャ 2: Node (kubelet/kube-proxy/CRI)、Pod ネットワーキングモデル
読了 13分

Certified Kubernetes Administrator (CKA) #3 クラスターアーキテクチャ 2: Node (kubelet/kube-proxy/CRI)、Pod ネットワーキングモデル

Certified Kubernetes Administrator (CKA) シリーズの 3 番目の記事です。control plane が決定を下すと、実際のコンテナはノードで動きます。ノードの 3 つのコンポーネントである kubelet、kube-proxy、コンテナランタイムの役割と CRI インターフェースを整理し、すべての Pod が NAT なしで通信する Kubernetes の Pod ネットワーキングモデルと CNI プラグインの位置づけまで、運用の観点から見ていきます。

Certified Kubernetes Administrator (CKA) #2 クラスターアーキテクチャ 1: Control plane (apiserver/etcd/scheduler/controller-manager)
読了 13分

Certified Kubernetes Administrator (CKA) #2 クラスターアーキテクチャ 1: Control plane (apiserver/etcd/scheduler/controller-manager)

Certified Kubernetes Administrator (CKA) シリーズの 2 番目の記事です。クラスターがどう動くのかを control plane から覗いていきます。kube-apiserver (すべての通信の関所)、etcd (クラスター状態の保存先)、kube-scheduler (Pod 配置の決定)、kube-controller-manager (reconciliation loop) がそれぞれ何をするのか、control plane がどのように static Pod として起動しているのか、そしてコンポーネントが死ぬとクラスターに何が起きるのかを運用者の視点で整理します。

Certified Kubernetes Administrator (CKA) #1: 試験環境: alias と dry-run、vim/yq セットアップ、時間管理
読了 8分

Certified Kubernetes Administrator (CKA) #1: 試験環境: alias と dry-run、vim/yq セットアップ、時間管理

Certified Kubernetes Administrator (CKA) シリーズの最初の記事です。2 時間の実技試験の構造と 5 つのドメインの比重 (Troubleshooting 30% が核心)、合格ラインと受験環境を整理し、試験時間を左右するセットアップ (alias、dry-run、vim/yq、etcdctl、systemctl) を手に覚えさせます。本シリーズは CKA 合格を目標にする 27 編で、最後の #27 で実技模擬試験を解きます。

K8s 実戦 #6 運用チェックリスト — アップグレード / バックアップ・リカバリ / コスト / セキュリティ
読了 14分

K8s 実戦 #6 運用チェックリスト — アップグレード / バックアップ・リカバリ / コスト / セキュリティ

K8s 実戦シリーズの最後の記事です。クラスタを安定的に立てることと 1 年間安全に運用することは異なる性質の作業です。EKS クラスタアップグレードサイクル、ノードグループ交換パターン、RDS 自動バックアップと PITR、Karpenter と Spot でコストを押さえる道、kube-bench と Trivy でセキュリティ点検を定期化する流れまでまとめます。最後の記事なので K8s 実戦 6 編の振り返りと 26 編の K8s トラック全体の振り返りも一緒に入れます。

K8s 実戦 #5 モニタリング・アラーム — Prometheus / CloudWatch / Alertmanager
読了 9分

K8s 実戦 #5 モニタリング・アラーム — Prometheus / CloudWatch / Alertmanager

[#4](/ja/posts/k8s-practice-4) まで作った myshop-api はコードからデプロイまで自動化されましたが、その動作を見ないと運用が回りません。この記事では EKS クラスタのオブザーバビリティスタックを整理します。kube-prometheus-stack で Prometheus + Grafana + Alertmanager を一度にインストールし、Container Insights と Fluent Bit で CloudWatch にメトリクス・ログを送る 2 軸を結合し、ServiceMonitor / PrometheusRule で myshop-api メトリクスとアラームを標準化し、4 golden signals のルールセットと Slack / PagerDuty ルーティングで on-call 流れまでまとめます。

K8s 実戦 #4 CI/CD パイプライン — GitHub Actions / ECR / ArgoCD
読了 8分

K8s 実戦 #4 CI/CD パイプライン — GitHub Actions / ECR / ArgoCD

[#3](/ja/posts/k8s-practice-3) まで作った myshop-api は新しいバージョンが入ってくる過程が人の手に縛られています。この記事ではその過程を自動化します。GitHub Actions で OIDC を使って静的キーなしに AWS ECR にコンテナイメージを push し、マニフェスト repo の Helm values を自動 commit して [上級 #6](/ja/posts/k8s-advanced-6) で扱った ArgoCD がその変更を検知してクラスタに同期する流れをまとめます。PR 承認ゲート、dev/prod 分岐、カナリーデプロイまで一緒に押さえます。

K8s 実戦 #3 DB 連動 — RDS / Secrets Manager / External Secrets / コネクションプール
読了 9分

K8s 実戦 #3 DB 連動 — RDS / Secrets Manager / External Secrets / コネクションプール

[#2](/ja/posts/k8s-practice-2) で外部公開まで作った myshop-api はデータストアが空の殻です。この記事では RDS PostgreSQL を Terraform で立てて、AWS Secrets Manager にマスター秘密を置き、External Secrets Operator でその秘密を K8s Secret に自動同期し、IRSA で静的資格情報なしにアクセスし、PgBouncer でコネクションプールまで載せる運用流れをまとめます。スキーマ移行を Job で自動化するパターンも一緒に押さえます。

K8s 実戦 #2 アプリデプロイ骨格 — Deployment / Service / Ingress / Helm
読了 8分

K8s 実戦 #2 アプリデプロイ骨格 — Deployment / Service / Ingress / Helm

[#1](/ja/posts/k8s-practice-1) で立てた空の EKS クラスタに myshop-api を載せる段階です。Deployment / Service / Ingress / ConfigMap / Secret / ServiceAccount / HPA を 1 セットで整理し、AWS Load Balancer Controller で ALB を自動プロビジョニングし、その束を Helm chart で抽象化して dev / prod に同じ chart が異なる values でデプロイされる流れまで 1 サイクルでまとめます。

K8s 実戦 #1 EKS クラスタセットアップ — Terraform / eksctl / IRSA / アドオン
読了 11分

K8s 実戦 #1 EKS クラスタセットアップ — Terraform / eksctl / IRSA / アドオン

K8s 実戦シリーズの最初の記事です。抽象ではなく実際の運用クラスタを構成する流れを追います。Terraform で VPC と EKS クラスタを定義し、ノードグループと IRSA をセットアップし、必須アドオン(VPC CNI、CoreDNS、kube-proxy、EBS CSI)まで載せる流れです。早いセットアップが必要なときの eksctl オプションも一緒に比較します。6 編全体で使う仮想サービス myshop-api のためのクラスタの出発点を作る最初の記事です。

K8s 高級 #6 GitOps — ArgoCD / Flux
読了 11分

K8s 高級 #6 GitOps — ArgoCD / Flux

K8s 高級シリーズの最後の記事です。マニフェストの source of truth を git に置き、クラスタ内のコントローラが git を watch して同期する運用モデル — GitOps をまとめます。push モデルと pull モデルの違い、ArgoCD の Application CRD と sync wave、Flux の Source / Kustomization / HelmRelease、ディレクトリ構造パターン、Sealed Secrets / External Secrets で秘密を git に安全に置く道までがこの記事の範囲です。シリーズ最後の記事なので K8s 高級 6 編の振り返りと次のトラック K8s 実戦の予告も一緒に入れます。