標準化用語集
この用語集は、Kubernetesの用語の包括的で標準化されたリストを対象としています。これには、Kubernetesに固有で有用なコンテキストを提供しつつも、より一般的な技術用語が含まれています。
タグに従って用語をフィルタ
Click on the [+] 特定の用語の詳細な説明を取得するには、以下のインジケータを使用します。
Kubernetesの機能を拡張するリソース。
[+]アドオンのインストールでは、クラスターのアドオン使用について詳しく説明し、いくつかの人気のあるアドオンを列挙します。
- またの名を: kube-apiserver
APIサーバーは、Kubernetes APIを外部に提供するKubernetesコントロールプレーンのコンポーネントです。 APIサーバーはKubernetesコントロールプレーンのフロントエンドになります。
[+]Kubernetes APIサーバーの主な実装はkube-apiserverです。 kube-apiserverは水平方向にスケールするように設計されています—つまり、インスタンスを追加することでスケールが可能です。 複数のkube-apiserverインスタンスを実行することで、インスタンス間でトラフィックを分散させることが可能です。
APIを起点とした退避は、Eviction APIを使用して退避オブジェクトを作成し、Podの正常終了を起動させるプロセスです。
[+]kubectl drain
コマンドのようなkube-apiserverのクライアントを使用し、Eviction APIを直接呼び出すことで、退避を要求することができます。Eviction
オブジェクトが生成された時、APIサーバーは対象のPodを終了させます。APIを起点とした退避は
PodDisruptionBudgets
とterminationGracePeriodSeconds
の設定を優先します。APIを起点とした退避は、Node不足による退避とは異なります。
- 詳しくはAPIを起点とした退避をご覧ください。
リソースの分離、使用状況の監視、制限を行うLinuxプロセスのグループ。
[+]cgroupはLinuxカーネルの機能であり、一連のプロセスに対して、リソース使用量(CPU、メモリー、ディスクI/O、ネットワーク)を制限、監視、分離するものです。
Cloud Native Computing Foundation (CNCF)は、持続可能なエコシステムを構築し、マイクロサービスアーキテクチャの一部としてコンテナをオーケストレーションするプロジェクトを中心としたコミュニティを育成します。
KubernetesはCNCFプロジェクトです。
[+]CNCFはLinux Foundationのサブファウンデーションです。 CNCFの使命は、クラウドネイティブコンピューティングをユビキタスにすることです。
The main protocol for the communication between the kubelet and Container Runtime.
[+]The Kubernetes Container Runtime Interface (CRI) defines the main gRPC protocol for the communication between the node components kubelet and container runtime.
Kubernetesにおいて、コントローラーはクラスターの状態を監視し、必要に応じて変更を加えたり要求したりする制御ループです。それぞれのコントローラーは現在のクラスターの状態を望ましい状態に近づけるように動作します。
[+]コントローラーはクラスターの状態をコントロールプレーンの一部であるkube-apiserverから取得します。
コントロールプレーン内部で動くいくつかのコントローラーは、Kubernetesの主要な操作に対する制御ループを提供します。 例えば、Deploymentコントローラー、Daemonsetコントローラー、Namespaceコントローラー、Persistent Volumeコントローラー等はkube-controller-managerの内部で動作します。
Kubernetes CRIと一緒にOCIコンテナランタイムを使うためのツールです。
[+]CRI-OはOpen Container Initiative (OCI) runtime specと互換性があるコンテナランタイムを使用できるようにするためのコンテナランタイムインターフェース(CRI)の実装の1つです。
CRI-Oのデプロイによって、Kubernetesは任意のOCI準拠のランタイムを、Podを実行するためのコンテナランタイムとして利用することと、リモートレジストリからOCIコンテナイメージを取得することができるようになります。
複製されたアプリケーションを管理するAPIオブジェクトで、通常はステートレスなPodを実行します。
[+]各レプリカはPodで表され、Podはクラスターのノード間で分散されます。 ローカル状態を要求するワークロードには、StatefulSetの利用を考えてください。
May refer to: Application Developer, Code Contributor, or Platform Developer.
[+]This overloaded term may have different meanings depending on the context
Disruptions are events that lead to one or more Pods going out of service. A disruption has consequences for workload resources, such as Deployment, that rely on the affected Pods.
[+]If you, as cluster operator, destroy a Pod that belongs to an application, Kubernetes terms that a voluntary disruption. If a Pod goes offline because of a Node failure, or an outage affecting a wider failure zone, Kubernetes terms that an involuntary disruption.
See Disruptions for more information.
Dockershimは、Kubernetesバージョン1.23およびそれ以前のバージョンに存在するコンポーネントです。Dockershimにより、kubeletがDocker Engineと通信できるようになります。
[+]Kubernetesバージョン1.24以降では、dockershimが削除されました。詳細については、dockershimの削除に関するFAQをご覧ください。
May refer to: code in the Kubernetes ecosystem that depends upon the core Kubernetes codebase or a forked repo.
[+]- In the Kubernetes Community: Conversations often use downstream to mean the ecosystem, code, or third-party tools that rely on the core Kubernetes codebase. For example, a new feature in Kubernetes may be adopted by applications downstream to improve their functionality.
- In GitHub or git: The convention is to refer to a forked repo as downstream, whereas the source repo is considered upstream.
Kubernetes' mechanism to expose Pod and container field values to code running in a container.
[+]It is sometimes useful for a container to have information about itself, without needing to make changes to the container code that directly couple it to Kubernetes.
The Kubernetes downward API allows containers to consume information about themselves or their context in a Kubernetes cluster. Applications in containers can have access to that information, without the application needing to act as a client of the Kubernetes API.
There are two ways to expose Pod and container fields to a running container:
- using environment variables
- using a
downwardAPI
volume
Together, these two ways of exposing Pod and container fields are called the downward API.
- In Kubernetes APIs, a duration must be non-negative and is typically expressed with a suffix. For example, 5s for five seconds or 1m30s for one minute and thirty seconds. [+]
In Kubernetes APIs, a duration must be non-negative and is typically expressed with a suffix. For example,
5s
for five seconds or1m30s
for one minute and thirty seconds. A way to group network endpoints together with Kubernetes resources.
[+]A scalable and extensible way to group network endpoints together. These can be used by kube-proxy to establish network routes on each node.
A Container type that you can temporarily run inside a Pod.
[+]If you want to investigate a Pod that's running with problems, you can add an ephemeral container to that Pod and carry out diagnostics. Ephemeral containers have no resource or scheduling guarantees, and you should not use them to run any part of the workload itself.
Ephemeral containers are not supported by static pods.
Event is a Kubernetes object that describes state change/notable occurrences in the system.
[+]Events have a limited retention time and triggers and messages may evolve with time. Event consumers should not rely on the timing of an event with a given reason reflecting a consistent underlying trigger, or the continued existence of events with that reason.
Events should be treated as informative, best-effort, supplemental data.
In Kubernetes, auditing generates a different kind of Event record (API group
audit.k8s.io
).Eviction is the process of terminating one or more Pods on Nodes.
[+]There are two kinds of eviction:
Extensions are software components that extend and deeply integrate with Kubernetes to support new types of hardware.
[+]Many cluster administrators use a hosted or distribution instance of Kubernetes. These clusters come with extensions pre-installed. As a result, most Kubernetes users will not need to install extensions and even fewer users will need to author new ones.
FlexVolumeは、ツリー外のボリュームプラグインを作成するための非推奨なインターフェースです。コンテナストレージインターフェース(CSI)は、FlexVolumeのいくつかの問題に対処する新しいインターフェースです。
[+]FlexVolumeを使用すると、ユーザーは独自のドライバーを作成し、Kubernetesでそれらのボリュームをサポートすることができます。 FlexVolumeドライバーのバイナリと依存関係は、ホストマシンにインストールする必要があります。 これにはrootアクセスが必要です。 Storage SIGは、FlexVolumeの制約に対処するために可能であればCSIドライバーを実装することを推奨しています。
Kubernetesでサービスネットワーキングをモデル化するために使用されるAPIクラス群。
[+]Gateway APIは、Kubernetesにおけるサービスネットワーキングをモデル化するための、拡張性が高く、ロール指向で、プロトコル対応のAPIクラス群を提供します。
- またの名を: GVR
Means of representing unique Kubernetes API resource.
[+]Group Version Resources (GVRs) specify the API group, API version, and resource (name for the object kind as it appears in the URI) associated with accessing a particular id of object in Kubernetes. GVRs let you define and distinguish different Kubernetes objects, and to specify a way of accessing objects that is stable even as APIs change.
Helmツールで管理できる、事前構成されたKubernetesリソースのパッケージ。
[+]チャートは、Kubernetesアプリケーションを作成および共有する再現可能な方法を提供します。 単一のチャートを使用して、memcached Podなどの単純なもの、またはHTTPサーバー、データベース、キャッシュなどを含む完全なWebアプリスタックなどの複雑なものをデプロイできます。
- またの名を: HPA
水平Pod自動スケーラーは、ターゲットCPU使用率またはカスタムメトリクスターゲットに基づいてPodのレプリカ数をスケーリングするAPIリソースです。
[+]HPAは通常ReplicationController、DeploymentまたはReplicaSetで使用されます。HPAはDaemonSetなどのスケーリングをサポートしないオブジェクトでは使用できません。
A HostAliases is a mapping between the IP address and hostname to be injected into a Pod's hosts file.
[+]HostAliases is an optional list of hostnames and IP addresses that will be injected into the Pod's hosts file if specified. This is only valid for non-hostNetwork Pods.
クラスター内のServiceに対する外部からのアクセス(主にHTTP)を管理するAPIオブジェクトです。
[+]Ingressは負荷分散、SSL終端、名前ベースの仮想ホスティングの機能を提供します。
One or more initialization containers that must run to completion before any app containers run.
[+]Initialization (init) containers are like regular app containers, with one difference: init containers must run to completion before any app containers can start. Init containers run in series: each init container must run to completion before the next init container begins.
Unlike sidecar containers, init containers do not remain running after Pod startup.
For more information, read init containers.
Istioは、マイクロサービスの統合やトラフィックフローの管理、ポリシーの適用、そしてテレメトリーデータの集約を行うための一様な方法を提供するオープンソースのプラットフォームです(Kubernetesに特化したものではありません)。
[+]Istioの追加にはアプリケーションコードの変更は必要ありません。Istioは、サービスとネットワークの間のインフラストラクチャーレイヤーになります。Istioのコントロールプレーンは、KubernetesやMesosphereなどのクラスター管理プラットフォームを抽象化します。
A means of representing claims to be transferred between two parties.
[+]JWTs can be digitally signed and encrypted. Kubernetes uses JWTs as authentication tokens to verify the identity of entities that want to perform actions in a cluster.
[+]kOps
will not only help you create, destroy, upgrade and maintain production-grade, highly available, Kubernetes cluster, but it will also provision the necessary cloud infrastructure.Note:
AWS (Amazon Web Services) is currently officially supported, with DigitalOcean, GCE and OpenStack in beta support, and Azure in alpha.kOps
is an automated provisioning system:- Fully automated installation
- Uses DNS to identify clusters
- Self-healing: everything runs in Auto-Scaling Groups
- Multiple OS support (Amazon Linux, Debian, Flatcar, RHEL, Rocky and Ubuntu)
- High-Availability support
- Can directly provision, or generate terraform manifests
kube-proxyはクラスター内の各nodeで動作しているネットワークプロキシで、KubernetesのServiceコンセプトの一部を実装しています。
[+]kube-proxyは、Nodeのネットワークルールをメンテナンスします。これらのネットワークルールにより、クラスターの内部または外部のネットワークセッションからPodへのネットワーク通信が可能になります。
kube-proxyは、オペレーティングシステムにパケットフィルタリング層があり、かつ使用可能な場合、パケットフィルタリング層を使用します。それ以外の場合は自身でトラフィックを転送します。
- またの名を: kubectl
Kubernetes APIを使用してKubernetesクラスターのコントロールプレーンと通信するためのコマンドラインツールです。
[+]Kubernetesオブジェクトの作成、検査、更新、削除には
kubectl
を使用することができます。 The application that serves Kubernetes functionality through a RESTful interface and stores the state of the cluster.
[+]Kubernetes resources and "records of intent" are all stored as API objects, and modified via RESTful calls to the API. The API allows configuration to be managed in a declarative way. Users can interact with the Kubernetes API directly, or via tools like
kubectl
. The core Kubernetes API is flexible and can also be extended to support custom resources.Provides constraints to limit resource consumption per Containers or Pods in a namespace.
[+]LimitRange limits the quantity of objects that can be created by type, as well as the amount of compute resources that may be requested/consumed by individual Containers or Pods in a namespace.
A software offering maintained by a third-party provider.
[+]Some examples of Managed Services are AWS EC2, Azure SQL Database, and GCP Pub/Sub, but they can be any software offering that can be used by an application.
Legacy term, used as synonym for nodes hosting the control plane.
[+]The term is still being used by some provisioning tools, such as kubeadm, and managed services, to label nodes with
kubernetes.io/role
and control placement of control plane pods.A tool for running Kubernetes locally.
[+]Minikube runs a single-node cluster inside a VM on your computer. You can use Minikube to try Kubernetes in a learning environment.
- またの名を: MVP
Feature to let a kube-apiserver proxy a resource request to a different peer API server.
[+]When a cluster has multiple API servers running different versions of Kubernetes, this feature enables resource requests to be served by the correct API server.
MVP is disabled by default and can be activated by enabling the feature gate named
UnknownVersionInteroperabilityProxy
when the API Server is started. A specification of how groups of Pods are allowed to communicate with each other and with other network endpoints.
[+]Network Policies help you declaratively configure which Pods are allowed to connect to each other, which namespaces are allowed to communicate, and more specifically which port numbers to enforce each policy on.
NetworkPolicy
resources use labels to select Pods and define rules which specify what traffic is allowed to the selected Pods. Network Policies are implemented by a supported network plugin provided by a network provider. Be aware that creating a network resource without a controller to implement it will have no effect.- またの名を: kubelet eviction
Node-pressure eviction is the process by which the kubelet proactively terminates pods to reclaim resources on nodes.
[+]The kubelet monitors resources like CPU, memory, disk space, and filesystem inodes on your cluster's nodes. When one or more of these resources reach specific consumption levels, the kubelet can proactively fail one or more pods on the node to reclaim resources and prevent starvation.
Node-pressure eviction is not the same as API-initiated eviction.
An entity in the Kubernetes system. The Kubernetes API uses these entities to represent the state of your cluster.
[+]A Kubernetes object is typically a “record of intent”—once you create the object, the Kubernetes control plane works constantly to ensure that the item it represents actually exists. By creating an object, you're effectively telling the Kubernetes system what you want that part of your cluster's workload to look like; this is your cluster's desired state.
The operator pattern is a system design that links a Controller to one or more custom resources.
[+]You can extend Kubernetes by adding controllers to your cluster, beyond the built-in controllers that come as part of Kubernetes itself.
If a running application acts as a controller and has API access to carry out tasks against a custom resource that's defined in the control plane, that's an example of the Operator pattern.
一番小さく一番シンプルなKubernetesのオブジェクト。Podとはクラスターで動作しているいくつかのコンテナのまとまりです。
[+]通常、Pod は一つの主コンテナを実行するように設定されます。ロギングなどの補足機能を付加する、取り外し可能なサイドカーコンテナを実行することもできます。Pod は通常 Deployment によって管理されます。
Pod disruption is the process by which Pods on Nodes are terminated either voluntarily or involuntarily.
[+]Voluntary disruptions are started intentionally by application owners or cluster administrators. Involuntary disruptions are unintentional and can be triggered by unavoidable issues like Nodes running out of resources, or by accidental deletions.
- またの名を: PDB
A Pod Disruption Budget allows an application owner to create an object for a replicated application, that ensures a certain number or percentage of Pods with an assigned label will not be voluntarily evicted at any point in time.
[+]Involuntary disruptions cannot be prevented by PDBs; however they do count against the budget.
The sequence of states through which a Pod passes during its lifetime.
[+]The Pod Lifecycle is defined by the states or phases of a Pod. There are five possible Pod phases: Pending, Running, Succeeded, Failed, and Unknown. A high-level description of the Pod state is summarized in the PodStatus
phase
field.Pod Priority indicates the importance of a Pod relative to other Pods.
[+]Pod Priority gives the ability to set scheduling priority of a Pod to be higher and lower than other Pods — an important feature for production clusters workload.
Enables fine-grained authorization of Pod creation and updates.
[+]A cluster-level resource that controls security sensitive aspects of the Pod specification. The
PodSecurityPolicy
objects define a set of conditions that a Pod must run with in order to be accepted into the system, as well as defaults for the related fields. Pod Security Policy control is implemented as an optional admission controller.PodSecurityPolicy was deprecated as of Kubernetes v1.21, and removed in v1.25. As an alternative, use Pod Security Admission or a 3rd party admission plugin.
- またの名を: pod template
An API object that defines a template for creating Pods. The PodTemplate API is also embedded in API definitions for workload management, such as Deployment or StatefulSets.
[+]Pod templates allow you to define common metadata (such as labels, or a template for the name of a new Pod) as well as to specify a pod's desired state. Workload management controllers use Pod templates (embedded into another object, such as a Deployment or StatefulSet) to define and manage one or more Pods. When there can be multiple Pods based on the same template, these are called replicas. Although you can create a PodTemplate object directly, you rarely need to do so.
A PriorityClass is a named class for the scheduling priority that should be assigned to a Pod in that class.
[+]A PriorityClass is a non-namespaced object mapping a name to an integer priority, used for a Pod. The name is specified in the
metadata.name
field, and the priority value in thevalue
field. Priorities range from -2147483648 to 1000000000 inclusive. Higher values indicate higher priority.A check that the kubelet periodically performs against a container that is running in a pod, that will define container's state and health and informing container's lifecycle.
[+]To learn more, read container probes.
In computing, a proxy is a server that acts as an intermediary for a remote service.
[+]A client interacts with the proxy; the proxy copies the client's data to the actual server; the actual server replies to the proxy; the proxy sends the actual server's reply to the client.
kube-proxy is a network proxy that runs on each node in your cluster, implementing part of the Kubernetes Service concept.
You can run kube-proxy as a plain userland proxy service. If your operating system supports it, you can instead run kube-proxy in a hybrid mode that achieves the same overall effect using less system resources.
QoS Class (Quality of Service Class) provides a way for Kubernetes to classify Pods within the cluster into several classes and make decisions about scheduling and eviction.
[+]QoS Class of a Pod is set at creation time based on its compute resources requests and limits settings. QoS classes are used to make decisions about Pods scheduling and eviction. Kubernetes can assign one of the following QoS classes to a Pod:
Guaranteed
,Burstable
orBestEffort
.A whole-number representation of small or large numbers using SI suffixes.
[+]Quantities are representations of small or large numbers using a compact, whole-number notation with SI suffixes. Fractional numbers are represented using milli units, while large numbers can be represented using kilo, mega, or giga units.
For instance, the number
1.5
is represented as1500m
, while the number1000
can be represented as1k
, and1000000
as1M
. You can also specify binary-notation suffixes; the number 2048 can be written as2Ki
.The accepted decimal (power-of-10) units are
m
(milli),k
(kilo, intentionally lowercase),M
(mega),G
(giga),T
(tera),P
(peta),E
(exa).The accepted binary (power-of-2) units are
Ki
(kibi),Mi
(mebi),Gi
(gibi),Ti
(tebi),Pi
(pebi),Ei
(exbi).Manages authorization decisions, allowing admins to dynamically configure access policies through the Kubernetes API.
[+]RBAC utilizes roles, which contain permission rules, and role bindings, which grant the permissions defined in a role to a set of users.
A copy or duplicate of a Pod or a set of pods. Replicas ensure high availability, scalability, and fault tolerance by maintaining multiple identical instances of a pod.
[+]Replicas are commonly used in Kubernetes to achieve the desired application state and reliability. They enable workload scaling and distribution across multiple nodes in a cluster.
By defining the number of replicas in a Deployment or ReplicaSet, Kubernetes ensures that the specified number of instances are running, automatically adjusting the count as needed.
Replica management allows for efficient load balancing, rolling updates, and self-healing capabilities in a Kubernetes cluster.
ReplicaSetは、任意の時点で動作しているレプリカPodの集合を保持します。(保持することを目指します。)
[+]Deploymentなどのワークロードオブジェクトは、ReplicaSetの仕様に基づいて、 設定された数のPodsがクラスターで稼働することを保証するために、 ReplicaSetを使用します。
A workload resource that manages a replicated application, ensuring that a specific number of instances of a Pod are running.
[+]The control plane ensures that the defined number of Pods are running, even if some Pods fail, if you delete Pods manually, or if too many are started by mistake.
Note:
ReplicationController is deprecated. See Deployment, which is similar.A person who reviews code for quality and correctness on some part of the project.
[+]Reviewers are knowledgeable about both the codebase and software engineering principles. Reviewer status is scoped to a part of the codebase.
The
[+]securityContext
field defines privilege and access control settings for a Pod or container.In a
securityContext
, you can define: the user that processes run as, the group that processes run as, and privilege settings. You can also configure security policies (for example: SELinux, AppArmor or seccomp).The
PodSpec.securityContext
setting applies to all containers in a Pod.クラスター内で1つ以上のPodとして実行されているネットワークアプリケーションを公開する方法です。
[+]Serviceが対象とするPodの集合は、(通常)セレクターによって決定されます。 Podを追加または削除するとセレクターにマッチしているPodの集合は変更されます。 Serviceは、ネットワークトラフィックが現在そのワークロードを処理するPodの集合に向かうことを保証します。
Kubernetes Serviceは、IPネットワーキング(IPv4、IPv6、またはその両方)を使用するか、ドメインネームシステム(DNS)でExternal Nameを参照します。
Serviceの抽象化により、IngressやGatewayなどの他のメカニズムを実現することができます。
Provides an identity for processes that run in a Pod.
[+]When processes inside Pods access the cluster, they are authenticated by the API server as a particular service account, for example,
default
. When you create a Pod, if you do not specify a service account, it is automatically assigned the default service account in the same Namespace.A technique for assigning requests to queues that provides better isolation than hashing modulo the number of queues.
[+]We are often concerned with insulating different flows of requests from each other, so that a high-intensity flow does not crowd out low-intensity flows. A simple way to put requests into queues is to hash some characteristics of the request, modulo the number of queues, to get the index of the queue to use. The hash function uses as input characteristics of the request that align with flows. For example, in the Internet this is often the 5-tuple of source and destination address, protocol, and source and destination port.
That simple hash-based scheme has the property that any high-intensity flow will crowd out all the low-intensity flows that hash to the same queue. Providing good insulation for a large number of flows requires a large number of queues, which is problematic. Shuffle-sharding is a more nimble technique that can do a better job of insulating the low-intensity flows from the high-intensity flows. The terminology of shuffle-sharding uses the metaphor of dealing a hand from a deck of cards; each queue is a metaphorical card. The shuffle-sharding technique starts with hashing the flow-identifying characteristics of the request, to produce a hash value with dozens or more of bits. Then the hash value is used as a source of entropy to shuffle the deck and deal a hand of cards (queues). All the dealt queues are examined, and the request is put into one of the examined queues with the shortest length. With a modest hand size, it does not cost much to examine all the dealt cards and a given low-intensity flow has a good chance to dodge the effects of a given high-intensity flow. With a large hand size it is expensive to examine the dealt queues and more difficult for the low-intensity flows to dodge the collective effects of a set of high-intensity flows. Thus, the hand size should be chosen judiciously.
One or more containers that are typically started before any app containers run.
[+]Sidecar containers are like regular app containers, but with a different purpose: the sidecar provides a Pod-local service to the main app container. Unlike init containers, sidecar containers continue running after Pod startup.
Read Sidecar containers for more information.
大規模なKubernetesオープンソースプロジェクトにおいて、開発中の部分または側面を集合的に管理するコミュニティメンバー
[+]SIGのメンバーは、アーキテクチャ、API machinery、ドキュメンテーションといった、特定のエリアの改善に共通の関心をもっています。 SIGはガバナンスガイドラインに準拠していなければなりませんが、独自の貢献ポリシーやコミュニケーションのチャンネルを持つことが可能です。
さらなる情報はコミュニティ (kubernetes/community)リポジトリとSIGとワーキンググループを参照して下さい。
Defines how each object, like Pods or Services, should be configured and its desired state.
[+]Almost every Kubernetes object includes two nested object fields that govern the object's configuration: the object spec and the object status. For objects that have a spec, you have to set this when you create the object, providing a description of the characteristics you want the resource to have: its desired state.
It varies for different objects like Pods, StatefulSets, and Services, detailing settings such as containers, volumes, replicas, ports,
and other specifications unique to each object type. This field encapsulates what state Kubernetes should maintain for the defined
object.StatefulSetはPodのデプロイとスケーリングを管理し、それらのPodの順序と一意性を保証します。
[+]Deploymentのように、StatefulSetは指定したコンテナのspecに基づいてPodを管理します。Deploymentとは異なり、StatefulSetは各Podにおいて管理が大変な同一性を維持します。これらのPodは同一のspecから作成されますが、それらは交換可能ではなく、リスケジュール処理をまたいで維持される永続的な識別子を持ちます。
ワークロードに永続性を持たせるためにストレージボリュームを使いたい場合は、解決策の1つとしてStatefulSetが利用できます。StatefulSet内の個々のPodは障害の影響を受けやすいですが、永続化したPodの識別子は既存のボリュームと障害によって置換された新しいPodの紐付けを簡単にします。
A pod managed directly by the kubelet daemon on a specific node,
[+]without the API server observing it.
Static Pods do not support ephemeral containers.
StorageClassは管理者が利用可能なさまざまなストレージタイプを記述する方法を提供します。
[+]StorageClassはサービス品質レベル、バックアップポリシー、クラスター管理者が決定した任意のポリシーにマッピングできます。 各StorageClassには
provisioner
、parameters
、reclaimPolicy
フィールドが含まれています。これらは、対象のStorageClassのPersistentVolumeを動的プロビジョニングする必要がある場合に使用されます。ユーザーはStorageClassオブジェクトの名前を使用して特定のStorageClassを要求できます。
[+]sysctl
is a semi-standardized interface for reading or changing the attributes of the running Unix kernel.On Unix-like systems,
sysctl
is both the name of the tool that administrators use to view and modify these settings, and also the system call that the tool uses.Container runtimes and network plugins may rely on
sysctl
values being set a certain way.A core object consisting of three required properties: key, value, and effect. Taints prevent the scheduling of Pods on nodes or node groups.
[+]Taints and tolerations work together to ensure that pods are not scheduled onto inappropriate nodes. One or more taints are applied to a node. A node should only schedule a Pod with the matching tolerations for the configured taints.
オブジェクトを一意に識別するためのKubernetesが生成する文字列です。
[+]Kubernetesクラスターの生存期間中にわたって生成された全てのオブジェクトは、異なるUIDを持っています。これは類似のエンティティの、同一時間軸での存在を区別するのが目的です。
May refer to: core Kubernetes or the source repo from which a repo was forked.
[+]- In the Kubernetes Community: Conversations often use upstream to mean the core Kubernetes codebase, which the general ecosystem, other code, or third-party tools rely upon. For example, community members may suggest that a feature is moved upstream so that it is in the core codebase instead of in a plugin or third-party tool.
- In GitHub or git: The convention is to refer to a source repo as upstream, whereas the forked repo is considered downstream.
A kernel feature to emulate root. Used for "rootless containers".
[+]User namespaces are a Linux kernel feature that allows a non-root user to emulate superuser ("root") privileges, for example in order to run containers without being a superuser outside the container.
User namespace is effective for mitigating damage of potential container break-out attacks.
In the context of user namespaces, the namespace is a Linux kernel feature, and not a namespace in the Kubernetes sense of the term.
A Volume Plugin enables integration of storage within a Pod.
[+]A Volume Plugin lets you attach and mount storage volumes for use by a Pod. Volume plugins can be in tree or out of tree. In tree plugins are part of the Kubernetes code repository and follow its release cycle. Out of tree plugins are developed independently.
A verb that is used to track changes to an object in Kubernetes as a stream. It is used for the efficient detection of changes.
[+]A verb that is used to track changes to an object in Kubernetes as a stream. Watches allow efficient detection of changes; for example, a controller that needs to know whenever a ConfigMap has changed can use a watch rather than polling.
See Efficient Detection of Changes in API Concepts for more information.
Facilitates the discussion and/or implementation of a short-lived, narrow, or decoupled project for a committee, SIG, or cross-SIG effort.
[+]Working groups are a way of organizing people to accomplish a discrete task.
For more information, see the kubernetes/community repo and the current list of SIGs and working groups.
アグリゲーションレイヤーを使用すると、追加のKubernetesスタイルのAPIをクラスターにインストールできます。
[+]Kubernetes APIサーバーをsupport additional APIsに設定すると、
APIService
オブジェクトを追加して、Kubernetes APIのURLパスを「要求」することができます。オブジェクトを永続化する前に、Kubernetes APIサーバーへのリクエストをインターセプトするコード。
[+]アドミッションコントローラーはKubernetes APIサーバー用に構成可能で、「検証(validating)」、「変更(mutating)」、またはその両方を行うことができます。どのアドミッションコントローラーも、リクエストを拒否することができます。変更コントローラーは、自身が許可するオブジェクトを変更できますが、検証コントローラーは変更できません。
- 様々なコンテナ化されたアプリケーションが実行される層。 [+]
様々なコンテナ化されたアプリケーションが実行される層。
アプリケーションの高レベルの設計を担当する人。
[+]アーキテクトは、アプリの実装によりスケーラブルで保守可能な方法で周囲のコンポーネントと対話できるようにします。 周囲のコンポーネントには、データベース、ロギングインフラストラクチャ、その他のマイクロサービスが含まれます。
Kubernetesクラスターで実行されるアプリケーションを作成する人。
[+]アプリケーション開発者は、アプリケーションの一部分に焦点を当てます。それらの焦点の規模は大きく異なる場合があります。
ワークロードとは、Kubernetes上で実行中のアプリケーションです。
[+]異なる種類のワークロードやその一部を表すコアオブジェクトはさまざまなものがあり、DaemonSet、Deployment、Job、ReplicaSet、StatefulSetオブジェクトなどがあります。
たとえば、ウェブサーバーとデータベースを含むワークロードの場合、データベースを1つのStatefulSetで実行し、ウェブサーバーをDeploymentで実行するという構成が考えられます。
イミュータブルインフラストラクチャはデプロイ後に変更できないコンピューターインフラストラクチャ(仮想マシン、コンテナ、ネットワークアプライアンス)を指します。
[+]イミュータビリティ(不変性)は、不正な変更に対して自動で上書きする処理や、そもそも変更を許可しないシステムによって強制的に維持されます。
コンテナはイミュータブルインフラストラクチャの良い例です。 コンテナへの永続的な変更は、新たなバージョンでコンテナを作成するか、既存のコンテナをイメージから再作成する方法しかないためです。
不正な変更を阻止または特定することで、イミュータブルインフラストラクチャはセキュリティリスクの特定と軽減を容易にします。 このようなシステムの運用は管理者が想定できるため、より簡単になります。 結局のところ、彼らは誰もミスや伝え忘れた変更がないことを知っています。 イミュータブルインフラストラクチャは、インフラストラクチャの作成に必要なすべての自動化をバージョン管理(Gitなど)に保存する、Infrastructure as Codeと密接に関係しています。 このイミュータビリティとバージョン管理の組み合わせは、システムに対するすべての許可された変更の永続性のある監査ログが存在することを意味します。
- コンテナを実行し、ネットワークに接続できるように、CPU、メモリ、ネットワーク、ストレージなどのキャパシティを提供するレイヤーです。 [+]
コンテナを実行し、ネットワークに接続できるように、CPU、メモリ、ネットワーク、ストレージなどのキャパシティを提供するレイヤーです。
エンドポイントは、サービスのセレクターに一致するPodのIPアドレスを記録する責任があります。
[+]セレクター識別子を指定せずに、サービス上でエンドポイントを手動で設定できます。 EndpointSliceは、スケーラブルで拡張可能な代替手段を提供します。
Kubernetesのオープンソースのコードベースを開発し、貢献する人。
[+]コントリビューターは、一つ以上のSIGのアクティブなコミュニティメンバーでもあります。
ガベージコレクションは、Kubernetesがクラスターリソースをクリーンアップするために使用するさまざまなメカニズムの総称です。
[+]Kubernetesはガベージコレクションを使用して、未使用のコンテナとイメージ、失敗したPod、対象リソースが所有するオブジェクト、完了したJob、期限切れまたは失敗したリソースなどのリソースをクリーンアップします。
拡張APIサーバーを構築することなく、Kubernetes APIサーバーに追加するリソースを定義するカスタムコードです。
[+]公開されているサポート対象のAPIリソースではニーズを満たせない場合、カスタムリソース定義(Custom Resource Definitions)を使用することで環境に合わせてKubernetes APIを拡張できます。
クラウド特有の制御ロジックを組み込むKubernetesのcontrol planeコンポーネントです。クラウドコントロールマネージャーは、クラスターをクラウドプロバイダーAPIをリンクし、クラスターのみで相互作用するコンポーネントからクラウドプラットフォームで相互作用するコンポーネントを分離します。
[+]Kubernetesと下のクラウドインフラストラクチャー間の相互運用ロジックを分離することで、cloud-controller-managerコンポーネントはクラウドプロバイダを主なKubernetesプロジェクトと比較し異なるペースで機能をリリース可能にします。
- またの名を: クラウドサービスプロバイダー
クラウドコンピューティングプラットフォームを提供する企業やその他の組織。
[+]クラウドプロバイダーは、クラウドサービスプロバイダー(CSP)とも呼ばれ、クラウドコンピューティングプラットフォームやサービスを提供します。
多くのクラウドプロバイダーは、マネージドインフラストラクチャ(Infrastructure as a ServiceやIaaSとも呼ばれる)を提供しています。 マネージドインフラストラクチャでは、クラウドプロバイダーがサーバー、ストレージ、ネットワーキングの責任を負い、ユーザーはその上のレイヤー、例えばKubernetesクラスターの運用を管理します。
また、Kubernetesをマネージドサービスとして提供する場合もあります。これはPlatform as a Service(PaaS)とも呼ばれます。マネージドKubernetesでは、クラウドプロバイダーがKubernetesのコントロールプレーンやNode、ネットワーキング、ストレージ、ロードバランサーなどのインフラストラクチャを管理します。
コンテナ化されたアプリケーションを実行する、ノードと呼ばれるワーカーマシンの集合です。すべてのクラスターには少なくとも1つのワーカーノードがあります。
[+]ワーカーノードは、アプリケーションのコンポーネントであるPodをホストします。マスターノードは、クラスター内のワーカーノードとPodを管理します。複数のマスターノードを使用して、クラスターにフェイルオーバーと高可用性を提供します。 ワーカーノードは、アプリケーションワークロードのコンポーネントであるPodをホストします。コントロールプレーンは、クラスター内のワーカーノードとPodを管理します。本番環境では、コントロールプレーンは複数のコンピューターを使用し、クラスターは複数のノードを使用し、耐障害性や高可用性を提供します。
一つ以上のKubernetesクラスターで構成されるインフラストラクチャーを設計する人。
[+]クラスターアーキテクトは、高可用性やセキュリティといった、分散システムにおけるベストプラクティスに関心を持ちます。
- インフラストラクチャレイヤーは、VM、ネットワーキング、セキュリティグループなどを提供および運用します。 [+]
インフラストラクチャレイヤーは、VM、ネットワーキング、セキュリティグループなどを提供および運用します。
Kubernetesクラスターの管理に関連する作業です。日々の運用管理とアップグレードの調整が含まれます。
[+]クラスター管理作業の例は以下の通りです。クラスターをスケールするために新しいノードをデプロイすること、ソフトウェアのアップグレードを実行すること、セキュリティコントロールを実装すること、ストレージの追加または削除を行うこと、クラスターのネットワークを構成すること、クラスター全体のオブザーバビリティを管理すること、イベントに対応することです。
クラスターを設定、管理そして、監視する人
[+]クラスターを稼働させ続けることを主な責務としており、定期的なメンテナンス作業やアップグレード作業も含まれることもあります。
軽量でポータブルなソフトウェアとそのすべての依存関係が含まれている実行可能なイメージです。
[+]コンテナはアプリケーションから基盤となるホストインフラストラクチャを分離させ、さまざまなクラウドまたはOS環境での展開を容易にし、スケーリングを容易にします。
コンテナストレージインターフェース(CSI)はストレージシステムをコンテナに公開するための標準インターフェースを定義します。
[+]CSIはベンダーがKubernetesリポジトリにコードを追加することなく(Kubernetesリポジトリツリー外のプラグインとして)独自のストレージプラグインを作成することを可能にします。CSIドライバをストレージプロバイダから利用するには、はじめにクラスターにCSIプラグインをデプロイする必要があります。その後のCSIドライバーを使用するためのStorageClassを作成することができます。
コンテナネットワークインターフェイス(CNI)プラグインは、appc/CNI仕様に準拠したネットワークプラグインの一種です。
[+]- KubernetesとCNIについては、ネットワークプラグインを参照してください。
コンテナランタイムは、コンテナの実行を担当するソフトウェアです。
[+]Kubernetesは次の複数のコンテナランタイムをサポートします。 Docker、containerd、CRI-O、 および全ての Kubernetes CRI (Container Runtime Interface) 実装です。
Kubernetesプロジェクトやコミュニティのために、コード、ドキュメント、その他に自身の時間を使って貢献している人々
[+]貢献はPull Request(PRs)、Issue、フィードバック、special interest groups (SIG)への参加、またはコミュニティイベントの開催が含まれます。
ファイナライザーは、削除対象としてマークされたリソースを完全に削除する前に、特定の条件が満たされるまでKubernetesを待機させるための名前空間付きのキーです。 ファイナライザーは、削除されたオブジェクトが所有していたリソースをクリーンアップするようにコントローラーに警告します。
[+]Kubernetesにファイナライザーが指定されたオブジェクトを削除するように指示すると、Kubernetes APIはそのオブジェクトに
.metadata.deletionTimestamp
を追加し削除対象としてマークして、ステータスコード202
(HTTP "Accepted")を返します。 コントロールプレーンやその他のコンポーネントがファイナライザーによって定義されたアクションを実行している間、対象のオブジェクトは終了中の状態のまま残っています。 それらのアクションが完了したら、そのコントローラーは関係しているファイナライザーを対象のオブジェクトから削除します。metadata.finalizers
フィールドが空になったら、Kubernetesは削除が完了したと判断しオブジェクトを削除します。ファイナライザーはリソースのガベージコレクションを管理するために使うことができます。 例えば、コントローラーが対象のリソースを削除する前に関連するリソースやインフラをクリーンアップするためにファイナライザーを定義することができます。
自身のプロジェクトの要件に合わせ、Kubernetesプラットフォームをカスタマイズする人
[+]プラットフォーム開発者は、特に自身のアプリケーションのために、例えばカスタムリソースや集約レイヤーを使ったKubernetes APIの拡張を用いて、Kubernetesに機能を追加ことがあるかもしれません。一部のプラットフォーム開発者はまたコントリビューターとして、エクステンションを開発しKubernetesのコミュニティに貢献しています。他の方々は、クローズドソースな商用もしくは、サイト固有なエクステンションを開発しています。
ユーザーがストレージボリュームの自動作成をリクエストできるようにします。
[+]動的プロビジョニングによりクラスター管理者が事前にストレージをプロビジョニングする必要がなくなります。その代わりにユーザーのリクエストにより自動的にストレージをプロビジョニングします。ボリュームの動的プロビジョニングはボリュームをプロビジョニングするVolume PluginとそのVolume Pluginに渡すパラメーターのセットを参照するStorageClassというAPIオブジェクトに基づいています。
kubeletがstatic Podを代表するために使用するPodオブジェクトです。
[+]kubeletが設定の中にstatic Podを発見すると、static Podに対応するPodオブジェクトをKubernetes APIサーバー上に自動的に作成しようとします。つまり、APIサーバーからはPodが見えていますが、制御まではできないということです。
(たとえば、ミラーPodを削除しても、kubeletデーモンが対応するPodの実行を停止することはありません。)
K8sコミュニティの継続的かつアクティブなコントリビューター
[+]メンバーはイシューとPRをアサインすることができ、GitHub teamを通じてspecial interest groups (SIGs)に参加することが可能です。メンバーのPRではPre-submitテストが自動で走ります。メンバーは、アクティブなコントリビューターとしてコミュニティに居続けることを期待されています。
コンテナ内でボリュームとしてマウントするためにPersistentVolume内で定義されたストレージリソースを要求します。
[+]ストレージサイズ、ストレージへのアクセス制御(読み取り専用、読み取り/書き込み、排他的)、および再利用方法(保持、リサイクル、削除)を指定します。ストレージ自体の詳細はPersistentVolumeオブジェクトに記載されています。
Kubernetesコードの貢献をレビュー、および承認できる人。
[+]コードレビューはコードの品質と正確性に焦点を当てていますが、承認はコントリビューションの全体的な受け入れに焦点を当てています。全体的な受け入れには、後方互換性/前方互換性、APIとフラグの規約への準拠、微妙なパフォーマンスと正確性の問題、システムの他の部分との相互作用などが含まれます。承認者のステータスは、コードベースの一部にスコープされます。承認者は以前はメンテナーと呼ばれていました。
Kubernetesクラスターへのアクセスを検証するために使用される暗号化されたセキュアなファイル。
[+]証明書により、Kubernetesクラスター内のアプリケーションがKubernetes APIに安全にアクセスできるようになります。証明書は、クライアントがAPIへのアクセスを許可されていることを検証します。
クライアントから提供され、リソースURL内のオブジェクトを参照する文字列です。例えば
[+]/api/v1/pods/何らかの名前
のようになります。同じ種類のオブジェクトは、同じ名前を同時に持つことはできません。しかし、オブジェクトを削除することで、旧オブジェクトと同じ名前で新しいオブジェクトを作成できます。
フィードバック
このページは役に立ちましたか?
Thanks for the feedback. If you have a specific, answerable question about how to use Kubernetes, ask it on Stack Overflow. Open an issue in the GitHub repo if you want to 問題を報告する or 改善を提案.