用語集
本文の 点線の語 をここに集めています。77 語。
- apiserverエーピーアイサーバー
kube-apiserver。Kubernetes の窓口になる HTTP の API サーバー。kubectl も、クラスタ内の全プログラムも、ここを通してしか状態を読み書きしない。
登場する章: Kubernetes への頼み方
- Borgボーグ
Google が 10 年以上運用してきた社内のクラスタマネージャ。大量のマシンにコンテナ化されたジョブを分散配置する。Kubernetes の原型。
登場する章: AWS の AZ と GCP の zone は同じものか
- Cloud Hypervisorクラウドハイパーバイザー
クラウド向けワークロードを対象にした Rust 製の VMM。Kata Containers のゲスト VM を動かす選択肢の一つ。
登場する章: 他人のコードを動かすときの隔て方
- cloud-controller-managerクラウドコントローラーマネージャー
kube-controller-manager からクラウド固有の処理だけを切り出したプロセス。Node / Route / Service の 3 つの controller を持つ。略して CCM。
登場する章: Service に type: LoadBalancer と書くと ELB が生えるのは誰の仕事かELB を作るのは誰か
- Cluster APIクラスターエーピーアイ
クラスタそのものを Kubernetes のリソース (Cluster、Machine など) として宣言し、controller が VM や EC2 を作る仕組み。
登場する章: ハンズオン: 自分のクラスタの「クラウド」を観察する
- CNIシーエヌアイ
Container Network Interface。Pod に NIC を生やし、IP を配るプラグインの規約。
- ConfigMapコンフィグマップ
秘密でない設定値を key: value で持つリソース。環境変数、コマンド引数、またはファイルとして Pod に注入する。
登場する章: アプリを動かす基本のリソース
- conntrackコントラック
netfilter の接続追跡。NAT で書き換えた通信の対応表を持ち、戻りパケットを自動で逆変換する。
登場する章: Docker なしでコンテナのネットワークを作る
- containerdコンテナディー
Docker から切り出された高レベルランタイム。kubelet からの依頼を受け付ける機能を内蔵し、イメージの保管、層の展開、コンテナのライフサイクル管理を担う。CNCF の graduated プロジェクト。
登場する章: コンテナを起動するプログラムたち
- controllerコントローラー
特定のリソースを監視して reconciliation loop を回すプロセス。kube-controller-manager にまとめて入っているものと、別に動かすもの (CCM、各種 operator) がある。
登場する章: 頼んだ状態を保ち続ける仕組み
- CPIシーピーアイ
Cloud Provider Interface。cloud-controller-manager がクラウドの API を呼ぶための Go の interface。
登場する章: Kubernetes 本体と外部プログラムの境界線
- CRDシーアールディー
CustomResourceDefinition。apiserver に新しいリソースの種類を登録する仕組み。登録すると kubectl、RBAC、watch、etcd への保存が組み込みのリソースと同じように使える。
登場する章: Kubernetes の 3 つの顔
- CRIシーアールアイ
Container Runtime Interface。kubelet がコンテナランタイムを呼ぶための gRPC の取り決め。
- CRI-Oクライオ
Kubernetes の kubelet からの依頼だけを受けるために作られた高レベルランタイム。Red Hat が 2016 年に始めたプロジェクトで、2019 年に CNCF へ寄贈された。CNCF の graduated プロジェクト。
登場する章: コンテナを起動するプログラムたち
- crictlクライシーティーエル
kubelet が containerd に出すのと同じ呼び出しを、手元から送れるデバッグ用 CLI。kubelet が見ているのと同じ Pod / コンテナ / イメージを、kubelet を通さずに一覧と検査ができる。
登場する章: コンテナを起動するプログラムたち
- crunクラン
C で実装された OCI ランタイム。CRI-O や Podman から呼び出され、namespace や cgroup を設定してコンテナを起動する。
登場する章: コンテナを起動するプログラムたち
- CSIシーエスアイ
Container Storage Interface。ボリュームの作成、ノードへの接続、マウントをストレージベンダーの driver に任せる gRPC の規約。
登場する章: Kubernetes 本体と外部プログラムの境界線
- ctrシーティーアール
containerd 付属のデバッグ用 CLI。CRI を通らず containerd の API を直接叩く。
-n k8s.ioで kubelet が使う namespace を指定する。登場する章: 手作りコンテナ
- Deploymentデプロイメント
ReplicaSet を世代ごとに作り、更新のときに新旧を切り替えるリソース。実運用でコンテナを動かすときに書く基本のリソース。
登場する章: 頼んだ状態を保ち続ける仕組み
- dockershimドッカーシム
kubelet に内蔵されていた CRI → Docker API の変換層。1.20 で非推奨、1.24 (2022 年) で削除された。
登場する章: ランタイムの栄枯盛衰
- eBPFイービーピーエフ
カーネルの中で安全に実行される小さなプログラムと、それが使うデータ構造 (map) の仕組み。ネットワークの hook (tc、XDP、socket) に取り付けて、パケットや接続を書き換えられる。
- EKS Auto Modeイーケーエスオートモード
ノードの運用まで AWS が引き受ける、EKS の動作モード。ノード、スケール、CNI、CSI、LB 連携をコア機能として AWS が持つ。
登場する章: EKS を OSS の組み合わせとして読む
- EndpointSliceエンドポイントスライス
Service の向き先 (Pod の IP とポート、ready などの状態) を最大 100 件ずつ分割して持つリソース。Endpoints の後継。
- Firecrackerファイアクラッカー
AWS が OSS として公開した、KVM を使って microVM を起動する VMM (Rust 製)。
- gVisorジーバイザー
コンテナの syscall をユーザー空間で動く Go 製のカーネル (Sentry) が受け取って処理する、サンドボックス化されたコンテナランタイム。
- Ingressイングレス
ホスト名やパスに応じて、外部からの HTTP / HTTPS 通信を Service へ振り分けるルールを書くリソース。
登場する章: Ingress の次の HTTP 入口
- IPVSアイピーブイエス
IP Virtual Server。Linux カーネルに古くからある L4 ロードバランサーで、宛先 IP:ポートから backend の一覧をハッシュテーブルで引く。
登場する章: kube-proxy の世代交代と eBPF
- Karpenterカーペンター
Pending の Pod の要求に合う EC2 を、その場で選んで起動するノードの自動増減ツール。
登場する章: EKS を OSS の組み合わせとして読む
- Kata Containersカタコンテナーズ
Pod ごとに軽量 VM を起動し、その中でコンテナを動かす OCI ランタイム。Intel の Clear Containers と Hyper の runV が合流して 2017 年 12 月に発表された、OpenInfra Foundation のプロジェクト。
登場する章: 他人のコードを動かすときの隔て方
- KEPケップ
Kubernetes Enhancement Proposal。機能追加の提案書。担当 SIG が承認し、alpha から GA までの昇格基準を定める。1 つの KEP が 1 つの機能の一生に対応する。
登場する章: Kubernetes の 3 つの顔
- kubeletキューブレット
各ノードで動くエージェント。自分のノードに割り当てられた Pod を apiserver から見つけ、コンテナランタイム (containerd など) にコンテナの起動を頼み、結果を Pod の status に書き戻す。
登場する章: 頼んだ状態を保ち続ける仕組み
- KubeVirtキューブバート
Kubernetes の上で VM を動かす仕組み。
登場する章: ハンズオン: 自分のクラスタの「クラウド」を観察する
- microVMマイクロブイエム
起動が速く、メモリの消費が小さい軽量な VM。専用のゲストカーネルを持つので、VM の隔離の強さを保てる。
登場する章: Fargate はタスクをどこで動かしているのか
- namespaceネームスペース
プロセスの一覧やネットワークなど、プロセスから見える範囲を種類ごとに分ける Linux の仕組み。
- network namespaceネットワークネームスペース
ネットワークの接続口、IP アドレス、経路などの設定を分けて持つ Linux の仕組み。
netnsと略す。登場する章: Docker なしでコンテナのネットワークを作る
- nftablesエヌエフテーブルズ
Linux カーネルの netfilter にルールを入れる現在の標準フレームワークと、その CLI
nft。iptables の後継で、テーブル / チェーン / ルールに加えてセットやマップ (vmap) を持つ。登場する章: Docker なしでコンテナのネットワークを作る
- nsenterエヌエスエンター
指定したプロセスの namespace に入ってコマンドを実行する util-linux のコマンド。
-tで対象、-m -n -pなどで入る namespace を選ぶ。登場する章: ノードでランタイムを解剖する
- OCIオーシーアイ
Open Container Initiative。2015 年 6 月に Docker や CoreOS などが Linux Foundation の下に作った、コンテナの仕様を決める団体。Runtime Spec / Image Spec / Distribution Spec の 3 つを管理する。
登場する章: Pod の YAML が runc に届くまで
- OCI Image Specオーシーアイイメージスペック
コンテナイメージの形式。manifest (層と config の一覧)、config (環境変数や entrypoint)、層 (tar の blob) を、すべて sha256 digest で参照する。
登場する章: Pod の YAML が runc に届くまで
- pivot_rootピボットルート
呼んだプロセスの mount namespace の root mount を new_root に入れ替え、古い root mount を put_old の下に移すシステムコール。put_old を umount すると、中から古い root に戻る道が無くなる。
登場する章: コンテナの正体
- Podポッド
Kubernetes が配置と起動の単位として扱う、1 つ以上のコンテナの集まり。同じ Pod のコンテナは同じノードで動き、IP とネットワーク namespace を共有する。
登場する章: Docker が解決すること、しないこと
- Pod sandboxポッドサンドボックス
Pod 内のコンテナが共有する namespace (net / ipc / uts) を保持するもの。containerd では pause コンテナがこの役を担う。
登場する章: CRI: kubelet がランタイムに頼む方法
- reconciliation loopリコンシリエーションループ
あるべき状態 (spec) と現在の状態 (status) を見比べて差分を埋め続けるコントローラーの基本動作。Kubernetes のほぼ全てがこの繰り返しでできている。
関連: controller
登場する章: 頼んだ状態を保ち続ける仕組み
- ReplicaSetレプリカセット
同じ Pod のひな形 (template) と台数 (replicas) と、自分の Pod を見分ける selector を持ち、その台数の Pod を保つリソース。
登場する章: 頼んだ状態を保ち続ける仕組み
- rktロケット
CoreOS 社が 2014 年 12 月に公開したコンテナランタイム。デーモンを置かず、systemd の仕組みで Pod を直接起動する。2016 年に Kubernetes 1.3 で対応 (rktnetes)、2019 年 8 月に CNCF でアーカイブ。
登場する章: ランタイムの栄枯盛衰
- runcランシー
OCI Runtime Spec を実装する低レベルランタイム。Docker が OCI に寄贈した Go 製のバイナリで、config.json と rootfs を読んで namespace と cgroup を作り、プロセスを起動する。
登場する章: コンテナを起動するプログラムたち
- RuntimeClassランタイムクラス
Pod にどのコンテナランタイム設定を使うかを指定するためのクラスタスコープのリソース。handler 名が containerd / CRI-O の設定にある runtime の名前に対応する。1.20 で GA。
登場する章: 他人のコードを動かすときの隔て方
- runwasiランワシ
containerd で WebAssembly / WASI のワークロードを動かすための shim を開発するプロジェクト。youki の libcontainer を隔離環境の構築に利用する。
登場する章: コンテナを起動するプログラムたち
- Secretシークレット
パスワードやトークンのような少量の秘密情報を持つリソース。ConfigMap と同じ形で注入できる。既定では etcd に暗号化されずに保存される。
登場する章: アプリを動かす基本のリソース
- Serviceサービス
ラベルで選んだ Pod 群に、Pod が入れ替わっても変わらない IP と DNS 名を与えるリソース。クラスタ内部のロードバランサー。
- shimシム
containerd と runc の間に挟まる小さなプロセス (containerd-shim-runc-v2)。runc を実行したあとコンテナの親として残り、stdio、終了コード、exec、tty を預かる。containerd と ttrpc で通信する。
登場する章: コンテナを起動するプログラムたち
- SIGシグ
Special Interest Group。Kubernetes の分野ごとの開発グループ。SIG Node、SIG Network、SIG Storage など 24 個ある。各 SIG は複数の会社のメンバーで構成され、設計の決定はここで行われる。
登場する章: Kubernetes の 3 つの顔
- Unikernelユニカーネル
アプリと、それが使うカーネル機能だけをリンクして 1 つのイメージにしたもの。VM として起動するが、汎用カーネルを持たないので小さく速い。
登場する章: 他人のコードを動かすときの隔て方
- vethブイイーサ
仮想イーサネットのペア。片方に入ったパケットがもう片方から出てくる、ケーブル 1 本相当の仮想デバイス。
- VMMブイエムエム
Virtual Machine Monitor。KVM の上で VM のデバイスやメモリを用意するユーザー空間プログラム。QEMU、Cloud Hypervisor、Firecracker など。
登場する章: 他人のコードを動かすときの隔て方
- XaaSエックスエーエーエス
X as a Service。何をサービスとして借りるかで、IaaS、CaaS、PaaS、FaaS、SaaS などと呼び分ける総称。
- youkiヨウキ
Rust で実装された OCI ランタイム。単体の実行ファイルに加え、コンテナ生成の libcontainer や資源管理の libcgroups を Rust のライブラリとして提供する。
登場する章: コンテナを起動するプログラムたち
- あるべき状態あるべきじょうたい
オブジェクトの
spec欄。利用者が書く「こうあってほしい」という望み。登場する章: Kubernetes への頼み方
- オーケストレーターオーケストレーター
複数のホストにまたがって、コンテナをどこで何個動かすか、落ちたらどうするかを決めて実行する仕組み。
- オーバーレイネットワークオーバーレイネットワーク
Pod のパケットをそのままノード IP 宛ての UDP パケットの中身にして運び、相手ノードで取り出す方式。物理ネットワークからは、ノード同士が UDP で話しているようにしか見えない。
- コンテナランタイムコンテナランタイム
ノード上でコンテナを動かすプログラムの総称。実際には、常駐してイメージとコンテナの状態を管理する高レベルランタイムと、1 回実行してコンテナのプロセスを起動する低レベルランタイムの 2 層に分かれる。
登場する章: コンテナを起動するプログラムたち
- コントロールプレーンコントロールプレーン
Pod やタスクの置き場所を決め、クラスタの状態を保存する側。Kubernetes では kube-apiserver、etcd、scheduler、controller 群。
- サービスディスカバリサービスディスカバリ
サービスの所在 (IP とポート) を名前などの安定した識別子から動的に引ける仕組み。
登場する章: Docker のネットワーク
- サンドボックスサンドボックス
CRI で Pod の土台を表す単位 (Pod sandbox)。Pod の net namespace や ipc namespace (場合によって pid namespace) を最初に作って持ち続ける pause コンテナのこと。
- データプレーンデータプレーン
決定どおりにコンテナを起動して動かす側。Kubernetes では各ノードの kubelet とコンテナランタイム。
登場する章: EKS の「マネージド」は、何を肩代わりしているのか
- マニフェストマニフェスト
Kubernetes に「何をどう動かしたいか」を伝えるための YAML (または JSON) のファイル。オブジェクトの種類 (kind) と名前、望む内容 (spec) を書く。
登場する章: Kubernetes への頼み方
- マネージド Kubernetesマネージドクバネティス
コントロールプレーンの運用をクラウド会社が引き受けるサービス。EKS、GKE、AKS など。
登場する章: EKS の「マネージド」は、何を肩代わりしているのか
- 起動タイプきどうタイプ
ECS でタスクをどこで動かすかの選び方。利用者の EC2 で動かす EC2 起動タイプと、AWS 管理の VM で動かす Fargate 起動タイプがある (task definition では launch type と呼ぶ)。
登場する章: Fargate はタスクをどこで動かしているのか
- 現在の状態げんざいのじょうたい
オブジェクトの
status欄。実際に今どうなっているかを、システム側が書き込む。登場する章: Kubernetes への頼み方
- 分離レベルぶんりレベル
アプリのシステムコールがホストカーネルに届くまでに、何がどれだけ挟まるかで表す、隔て方の強さ。この教材での呼び方。
登場する章: 他人のコードを動かすときの隔て方