用語集

本文の 点線の語 をここに集めています。77 語。

apiserverエーピーアイサーバー

kube-apiserver。Kubernetes の窓口になる HTTP の API サーバー。kubectl も、クラスタ内の全プログラムも、ここを通してしか状態を読み書きしない。

登場する章: Kubernetes への頼み方

Borgボーグ

Google が 10 年以上運用してきた社内のクラスタマネージャ。大量のマシンにコンテナ化されたジョブを分散配置する。Kubernetes の原型。

登場する章: AWS の AZ と GCP の zone は同じものか

cgroupsシーグループス

プロセスをグループにまとめ、CPU やメモリなどの使用量を制限・監視する Linux の仕組み。

登場する章: コンテナとは何かコンテナの正体

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 を配るプラグインの規約。

登場する章: Kubernetes 本体と外部プログラムの境界線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 の取り決め。

登場する章: Kubernetes 本体と外部プログラムの境界線Pod の YAML が runc に届くまで

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) に取り付けて、パケットや接続を書き換えられる。

登場する章: Service と ClusterIP: 宛先はどこで書き換わるのか

EKS Auto Modeイーケーエスオートモード

ノードの運用まで AWS が引き受ける、EKS の動作モード。ノード、スケール、CNI、CSI、LB 連携をコア機能として AWS が持つ。

登場する章: EKS を OSS の組み合わせとして読む

EndpointSliceエンドポイントスライス

Service の向き先 (Pod の IP とポート、ready などの状態) を最大 100 件ずつ分割して持つリソース。Endpoints の後継。

登場する章: Service と ClusterIP: 宛先はどこで書き換わるのか

Firecrackerファイアクラッカー

AWS が OSS として公開した、KVM を使って microVM を起動する VMM (Rust 製)。

登場する章: Fargate はタスクをどこで動かしているのか他人のコードを動かすときの隔て方

gVisorジーバイザー

コンテナの syscall をユーザー空間で動く Go 製のカーネル (Sentry) が受け取って処理する、サンドボックス化されたコンテナランタイム。

登場する章: AWS の AZ と GCP の zone は同じものか他人のコードを動かすときの隔て方

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 に届くまで

OverlayFSオーバーレイエフエス

複数のディレクトリを重ね、1 つのディレクトリに見せる Linux のファイルシステム。

登場する章: コンテナとは何かコンテナの正体

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 でアーカイブ。

登場する章: ランタイムの栄枯盛衰

rootfsルートエフエス

root filesystem。コンテナのプロセスが / として見るディレクトリ。ホスト上の普通のディレクトリで、中身はイメージから作られる。

登場する章: コンテナの正体

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 名を与えるリソース。クラスタ内部のロードバランサー。

登場する章: Service と ClusterIP: 宛先はどこで書き換わるのかアプリを動かす基本のリソース

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 として起動するが、汎用カーネルを持たないので小さく速い。

登場する章: 他人のコードを動かすときの隔て方

unshareアンシェア

新しい namespace を作って、その中でコマンドを実行する util-linux のコマンド。同名のシステムコールを呼ぶ。

登場する章: 手作りコンテナ

vethブイイーサ

仮想イーサネットのペア。片方に入ったパケットがもう片方から出てくる、ケーブル 1 本相当の仮想デバイス。

登場する章: Docker のネットワークDocker なしでコンテナのネットワークを作る

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 への頼み方

オーケストレーターオーケストレーター

複数のホストにまたがって、コンテナをどこで何個動かすか、落ちたらどうするかを決めて実行する仕組み。

登場する章: コンテナを動かすサービスは、どこまでクラウドが管理するのかDocker が解決すること、しないこと

オーバーレイネットワークオーバーレイネットワーク

Pod のパケットをそのままノード IP 宛ての UDP パケットの中身にして運び、相手ノードで取り出す方式。物理ネットワークからは、ノード同士が UDP で話しているようにしか見えない。

登場する章: Docker と Kubernetes のネットワークは何が違うのか

クラスタクラスタ

Kubernetes でアプリを動かすノードと、それらを管理する仕組みの集まり。

登場する章: コンテナとは何か

コンテナランタイムコンテナランタイム

ノード上でコンテナを動かすプログラムの総称。実際には、常駐してイメージとコンテナの状態を管理する高レベルランタイムと、1 回実行してコンテナのプロセスを起動する低レベルランタイムの 2 層に分かれる。

登場する章: コンテナを起動するプログラムたち

コントロールプレーンコントロールプレーン

Pod やタスクの置き場所を決め、クラスタの状態を保存する側。Kubernetes では kube-apiserver、etcd、scheduler、controller 群。

登場する章: EKS の「マネージド」は、何を肩代わりしているのか頼んだ状態を保ち続ける仕組み

サービスディスカバリサービスディスカバリ

サービスの所在 (IP とポート) を名前などの安定した識別子から動的に引ける仕組み。

登場する章: Docker のネットワーク

サンドボックスサンドボックス

CRI で Pod の土台を表す単位 (Pod sandbox)。Pod の net namespace や ipc namespace (場合によって pid namespace) を最初に作って持ち続ける pause コンテナのこと。

登場する章: Pod の YAML が runc に届くまで他人のコードを動かすときの隔て方

データプレーンデータプレーン

決定どおりにコンテナを起動して動かす側。Kubernetes では各ノードの kubelet とコンテナランタイム。

登場する章: EKS の「マネージド」は、何を肩代わりしているのか

ノードノード

Kubernetes がコンテナを動かすマシン。物理マシンの場合も VM の場合もある。

登場する章: コンテナとは何か

マニフェストマニフェスト

Kubernetes に「何をどう動かしたいか」を伝えるための YAML (または JSON) のファイル。オブジェクトの種類 (kind) と名前、望む内容 (spec) を書く。

登場する章: Kubernetes への頼み方

マネージド Kubernetesマネージドクバネティス

コントロールプレーンの運用をクラウド会社が引き受けるサービス。EKS、GKE、AKS など。

登場する章: EKS の「マネージド」は、何を肩代わりしているのか

起動タイプきどうタイプ

ECS でタスクをどこで動かすかの選び方。利用者の EC2 で動かす EC2 起動タイプと、AWS 管理の VM で動かす Fargate 起動タイプがある (task definition では launch type と呼ぶ)。

登場する章: Fargate はタスクをどこで動かしているのか

現在の状態げんざいのじょうたい

オブジェクトの status 欄。実際に今どうなっているかを、システム側が書き込む。

登場する章: Kubernetes への頼み方

層そう

イメージを構成する、前の層からの差分 (追加、変更、削除したファイル) だけを tar に固めたもの。多くは gzip か zstd で圧縮される。

登場する章: コンテナの正体

分離レベルぶんりレベル

アプリのシステムコールがホストカーネルに届くまでに、何がどれだけ挟まるかで表す、隔て方の強さ。この教材での呼び方。

登場する章: 他人のコードを動かすときの隔て方