#Kubernetes

136 件の記事

Health check
読了 20分

Health check

K8s がコンテナが生きているか、そしてトラフィックを受ける準備ができているかをどう判断するかのモデルを扱います。liveness · readiness · startup の3つの probe の役割分離、httpGet · tcpSocket · exec の検査方式、initialDelaySeconds · periodSeconds · failureThreshold のようなパラメータチューニング、liveness に外部依存を入れたときの cascading failure、terminationGracePeriodSeconds と preStop フックの graceful shutdown までを一連の流れで整理します。

Ingress と Ingress Controller
読了 18分

Ingress と Ingress Controller

外部トラフィックがクラスタの中の Service へ入ってくるモデルをまとめる抽象化です。Ingress オブジェクトと Ingress Controller の二層分離、ホスト · パス · pathType ベースのルーティング、TLS 終端と cert-manager、IngressClass、そして後続標準である Gateway API までを体系的に整理します。

kubectl と最初の Pod
読了 15分

kubectl と最初の Pod

kubectl のメンタルモデルをつかみ、最初の Pod を起動します。kubectl run の命令型の一連の流れから YAML マニフェストの宣言型、get / describe / logs / exec の日常コマンド、Pod ライフサイクルと ImagePullBackOff・CrashLoopBackOff のよくある失敗パターンまで扱います。

Kubernetes とは
読了 15分

Kubernetes とは

なぜコンテナオーケストレーターが必要なのか。Docker / docker-compose まで触れてきた読者を出発点に、単一コンテナツールの5つの限界、宣言型 desired state + reconcile loop モデル、control plane / worker node の全体像、本書の範囲までを整理します。

Namespace とラベル
読了 18分

Namespace とラベル

1つのクラスタをネームスペースで分けておくモデルとラベル・セレクタの文法を整理します。default の限界、システムネームスペース4つ、RBAC・ResourceQuota・NetworkPolicy の単位としてのネームスペース、kubens 運用のヒント、app.kubernetes.io/* 標準ラベル、kubectl -l の selector 文法までを扱い1部を締めくくります。

PV / PVC / StorageClass
読了 19分

PV / PVC / StorageClass

Pod のライフサイクルを越えて生き残る永続データモデルを扱います。PV · PVC · StorageClass の三角関係、静的 · 動的プロビジョニング、accessModes (RWO · RWX · RWOP)、reclaimPolicy、volumeBindingMode の WaitForFirstConsumer、allowVolumeExpansion、StatefulSet の volumeClaimTemplates がその上で何を作るのかまでを一連の流れで整理します。

resources.requests / limits
読了 17分

resources.requests / limits

コンテナが CPU とメモリをどう要求し、どう上限を与えられるかのモデルを扱います。requests と limits の分離、QoS クラス (Guaranteed · Burstable · BestEffort)、CPU throttling とメモリ OOMKilled の動作の違い、JVM · Go ランタイムの cgroup 認識、LimitRange · ResourceQuota のネームスペースポリシー、そして最初の値を決めて調整する運用サイクルまでを一連の流れで整理します。

Service
読了 16分

Service

Pod IP が一時的だという問題を解く抽象 — Service。安定した ClusterIP・selector・Endpoints / EndpointSlice・そして ClusterIP・NodePort・LoadBalancer の3タイプの選択基準、kube-proxy の DNAT、CoreDNS の短い名前の解決までを一連の流れで扱います。

StatefulSet / DaemonSet / Job / CronJob
読了 18分

StatefulSet / DaemonSet / Job / CronJob

Deployment の stateless 前提では表現できない4系統のワークロードを扱うコントローラを整理します。StatefulSet のアイデンティティと PVC 1:1、DaemonSet のノード単位1個、Job の終了モデル、CronJob の cron スケジューリングと concurrencyPolicy · startingDeadlineSeconds の安全装置までを一連の流れで扱います。

オートスケーリング
読了 23分

オートスケーリング

運用クラスタの負荷変動を人の介入なしで吸収する3次元の自動調整を扱います。HPA (Pod 数) · VPA (Pod リソース) · Cluster Autoscaler (ノード数) の役割分離、metrics-server の前提、HPA の autoscaling/v2 マニフェストと比例式アルゴリズム、scale up · down の非対称な behavior、custom metric と KEDA、VPA の updateMode と HPA · VPA の衝突、Karpenter までを一連の流れで整理します。

ローカル環境
読了 11分

ローカル環境

minikube・kind・Docker Desktop k8s のどれを使うかを決めます。3つのオプションの動作方式・長短所を比較し、kubectl をインストールしたあと kind で最初のクラスタを起動してノードとシステム Pod を確認する流れまで一度にたどります。

Certified Kubernetes Administrator (CKA) #9 RBAC: Role/ClusterRole、RoleBinding、ServiceAccount、kubectl auth can-i
読了 12分

Certified Kubernetes Administrator (CKA) #9 RBAC: Role/ClusterRole、RoleBinding、ServiceAccount、kubectl auth can-i

Certified Kubernetes Administrator (CKA) シリーズの 9 番目の記事です。誰が何をできるかを決める RBAC を運用者の視点から深く扱います。Role と ClusterRole、RoleBinding と ClusterRoleBinding の組み合わせ規則、subjects (User/Group/ServiceAccount) と rules (apiGroups/resources/verbs) の構造、kubectl create で素早く作る方法、kubectl auth can-i と --as で権限を検証する方法、そして [#8](/ja/posts/cka-8) で作ったユーザーを RBAC に接続する流れまで整理します。