Kubernetes
Kubernetes

context: zh_tw: 控制器是透過管理一組 pod 來實現來將實際叢集狀態轉移到所需叢集狀態的對帳迴圈機制。一種控制器指的是一組具有相同特徵的 “複製控制器”，控制器透過在叢集中執行指定數量的 pod 副本來處理複製和縮放。在基礎節點出現故障的情況下，它還可以用於處理建立替換 pod。其它控制器也是核心 Kubernetes 系統的一部分，包括 “DaemonSet 控制器” 為每臺機器（或機器的一些子集）上執行的單個 pod，和用於執行 pod 的 “作業控制器”。 控制器管理的 pod 組由作為控制器定義的部分的標籤選擇器來確定。
en: etcd: etcd is a persistent, lightweight, distributed, key-value data store developed by CoreOS that reliably stores the configuration data of the cluster, representing the overall state of the cluster at any given point of time. Just like Apache ZooKeeper, etcd is a system that favors consistency over availability in the event of a network partition (see CAP theorem). This consistency is crucial for correctly scheduling and operating services. The Kubernetes API Server uses etcd's watch API to monitor the cluster and roll out critical configuration changes or simply restore any divergences of the state of the cluster, back to what was declared by the deployer. As an example, if the deployer specified that three instances of a particular pod need to be running, this fact is stored in etcd. If it is found that only two instances are running, this delta will be detected by comparison with etcd data, and Kubernetes will use this to schedule the creation of an additional instance of that pod.API server: The API server is a key component and serves the Kubernetes API using JSON over HTTP, which provides both the internal and external interface to Kubernetes. The API server processes and validates REST requests and updates state of the API objects in etcd, thereby allowing clients to configure workloads and containers across Worker nodes.Scheduler: The scheduler is the pluggable component that selects which node an unscheduled pod (the basic entity managed by the scheduler) runs on, based on resource availability. Scheduler tracks resource use on each node to ensure that workload is not scheduled in excess of available resources. For this purpose, the scheduler must know the resource requirements, resource availability, and other user-provided constraints and policy directives such as quality-of-service, affinity/anti-affinity requirements, data locality, and so on.  In essence, the scheduler's role is to match resource "supply" to workload "demand".Controller manager: A controller is a reconciliation loop that drives actual cluster state toward the desired cluster state, communicating with the API server to create, update, and delete the resources it manages (pods, service endpoints, etc.).  The controller manager is a process that manages a set of core Kubernetes controllers. One kind of controller is a Replication Controller, which handles replication and scaling by running a specified number of copies of a pod across the cluster. It also handles creating replacement pods if the underlying node fails. Other controllers that are part of the core Kubernetes system include a DaemonSet Controller for running exactly one pod on every machine (or some subset of machines), and a Job Controller for running pods that run to completion, e.g. as part of a batch job. The set of pods that a controller manages is determined by label selectors that are part of the controller's definition.
qas: question: zh_tw: 哪個控制器智慧控制一個吊艙？
en: Which controller only controls one pod?
answers: zh_tw: text: DaemonSet 控制器
en: text: DaemonSet Controller