You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: content/en/docs/concepts/architecture/_index.md
+62-24
Original file line number
Diff line number
Diff line change
@@ -5,9 +5,13 @@ description: >
5
5
The architectural concepts behind Kubernetes.
6
6
---
7
7
8
-
A Kubernetes cluster consists of a control plane plus a set of worker machines, called nodes, that run containerized applications. Every cluster needs at least one worker node in order to run Pods.
8
+
A Kubernetes cluster consists of a control plane plus a set of worker machines, called nodes,
9
+
that run containerized applications. Every cluster needs at least one worker node in order to run Pods.
9
10
10
-
The worker node(s) host the Pods that are the components of the application workload. The control plane manages the worker nodes and the Pods in the cluster. In production environments, the control plane usually runs across multiple computers and a cluster usually runs multiple nodes, providing fault-tolerance and high availability.
11
+
The worker node(s) host the Pods that are the components of the application workload.
12
+
The control plane manages the worker nodes and the Pods in the cluster. In production
13
+
environments, the control plane usually runs across multiple computers and a cluster
14
+
usually runs multiple nodes, providing fault-tolerance and high availability.
11
15
12
16
This document outlines the various components you need to have for a complete and working Kubernetes cluster.
13
17
@@ -17,9 +21,15 @@ caption="**Note:** This diagram presents an example reference architecture for a
17
21
18
22
## Control plane components
19
23
20
-
The control plane's components make global decisions about the cluster (for example, scheduling), as well as detecting and responding to cluster events (for example, starting up a new {{< glossary_tooltip text="pod" term_id="pod">}} when a Deployment's `{{< glossary_tooltip text="replicas" term_id="replica" >}}` field is unsatisfied).
24
+
The control plane's components make global decisions about the cluster (for example, scheduling),
25
+
as well as detecting and responding to cluster events (for example, starting up a new
26
+
{{< glossary_tooltip text="pod" term_id="pod">}} when a Deployment's
27
+
`{{< glossary_tooltip text="replicas" term_id="replica" >}}` field is unsatisfied).
21
28
22
-
Control plane components can be run on any machine in the cluster. However, for simplicity, setup scripts typically start all control plane components on the same machine, and do not run user containers on this machine. See [Creating Highly Available clusters with kubeadm](/docs/setup/production-environment/tools/kubeadm/high-availability/) for an example control plane setup that runs across multiple machines.
29
+
Control plane components can be run on any machine in the cluster. However, for simplicity, setup scripts
30
+
typically start all control plane components on the same machine, and do not run user containers on this machine.
31
+
See [Creating Highly Available clusters with kubeadm](/docs/setup/production-environment/tools/kubeadm/high-availability/)
32
+
for an example control plane setup that runs across multiple machines.
23
33
24
34
### kube-apiserver
25
35
@@ -50,13 +60,18 @@ The above is not an exhaustive list.
The cloud-controller-manager only runs controllers that are specific to your cloud provider. If you are running Kubernetes on your own premises, or in a learning environment inside your own PC, the cluster does not have a cloud controller manager.
63
+
The cloud-controller-manager only runs controllers that are specific to your cloud provider.
64
+
If you are running Kubernetes on your own premises, or in a learning environment inside your
65
+
own PC, the cluster does not have a cloud controller manager.
54
66
55
-
As with the kube-controller-manager, the cloud-controller-manager combines several logically independent control loops into a single binary that you run as a single process. You can scale horizontally (run more than one copy) to improve performance or to help tolerate failures.
67
+
As with the kube-controller-manager, the cloud-controller-manager combines several logically
68
+
independent control loops into a single binary that you run as a single process. You can scale
69
+
horizontally (run more than one copy) to improve performance or to help tolerate failures.
56
70
57
71
The following controllers can have cloud provider dependencies:
58
72
59
-
- Node controller: For checking the cloud provider to determine if a node has been deleted in the cloud after it stops responding
73
+
- Node controller: For checking the cloud provider to determine if a node has been
74
+
deleted in the cloud after it stops responding
60
75
- Route controller: For setting up routes in the underlying cloud infrastructure
61
76
- Service controller: For creating, updating and deleting cloud provider load balancers
62
77
@@ -81,37 +96,52 @@ kube-proxy on the nodes in your cluster.
81
96
82
97
## Addons
83
98
84
-
Addons use Kubernetes resources ({{< glossary_tooltip term_id="daemonset" >}}, {{< glossary_tooltip term_id="deployment" >}}, etc) to implement cluster features. Because these are providing cluster-level features, namespaced resources for addons belong within the `kube-system` namespace.
99
+
Addons use Kubernetes resources ({{< glossary_tooltip term_id="daemonset" >}},
100
+
{{< glossary_tooltip term_id="deployment" >}}, etc) to implement cluster features.
101
+
Because these are providing cluster-level features, namespaced resources for
102
+
addons belong within the `kube-system` namespace.
85
103
86
-
Selected addons are described below; for an extended list of available addons, please see [Addons](/docs/concepts/cluster-administration/addons/).
104
+
Selected addons are described below; for an extended list of available addons,
105
+
please see [Addons](/docs/concepts/cluster-administration/addons/).
87
106
88
107
### DNS
89
108
90
-
While the other addons are not strictly required, all Kubernetes clusters should have [cluster DNS](/docs/concepts/services-networking/dns-pod-service/), as many examples rely on it.
109
+
While the other addons are not strictly required, all Kubernetes clusters should have
110
+
[cluster DNS](/docs/concepts/services-networking/dns-pod-service/), as many examples rely on it.
91
111
92
-
Cluster DNS is a DNS server, in addition to the other DNS server(s) in your environment, which serves DNS records for Kubernetes services.
112
+
Cluster DNS is a DNS server, in addition to the other DNS server(s) in your environment,
113
+
which serves DNS records for Kubernetes services.
93
114
94
115
Containers started by Kubernetes automatically include this DNS server in their DNS searches.
95
116
96
117
### Web UI (Dashboard)
97
118
98
-
[Dashboard](/docs/tasks/access-application-cluster/web-ui-dashboard/) is a general purpose, web-based UI for Kubernetes clusters. It allows users to manage and troubleshoot applications running in the cluster, as well as the cluster itself.
119
+
[Dashboard](/docs/tasks/access-application-cluster/web-ui-dashboard/) is a general purpose,
120
+
web-based UI for Kubernetes clusters. It allows users to manage and troubleshoot applications
121
+
running in the cluster, as well as the cluster itself.
99
122
100
123
### Container resource monitoring
101
124
102
-
[Container Resource Monitoring](/docs/tasks/debug/debug-cluster/resource-usage-monitoring/) records generic time-series metrics about containers in a central database, and provides a UI for browsing that data.
records generic time-series metrics about containers in a central database, and provides a UI for browsing that data.
103
127
104
128
### Cluster-level Logging
105
129
106
-
A [cluster-level logging](/docs/concepts/cluster-administration/logging/) mechanism is responsible for saving container logs to a central log store with a search/browsing interface.
130
+
A [cluster-level logging](/docs/concepts/cluster-administration/logging/) mechanism is responsible
131
+
for saving container logs to a central log store with a search/browsing interface.
107
132
108
133
### Network plugins
109
134
110
-
[Network plugins](/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins) are software components that implement the container network interface (CNI) specification. They are responsible for allocating IP addresses to pods and enabling them to communicate with each other within the cluster.
are software components that implement the container network interface (CNI) specification.
137
+
They are responsible for allocating IP addresses to pods and enabling them to communicate
138
+
with each other within the cluster.
111
139
112
140
## Architecture variations
113
141
114
-
While the core components of Kubernetes remain consistent, the way they are deployed and managed can vary. Understanding these variations is crucial for designing and maintaining Kubernetes clusters that meet specific operational needs.
142
+
While the core components of Kubernetes remain consistent, the way they are deployed and
143
+
managed can vary. Understanding these variations is crucial for designing and maintaining
144
+
Kubernetes clusters that meet specific operational needs.
115
145
116
146
### Control plane deployment options
117
147
@@ -121,27 +151,33 @@ Traditional deployment
121
151
: Control plane components run directly on dedicated machines or VMs, often managed as systemd services.
122
152
123
153
Static Pods
124
-
: Control plane components are deployed as static Pods, managed by the kubelet on specific nodes. This is a common approach used by tools like kubeadm.
154
+
: Control plane components are deployed as static Pods, managed by the kubelet on specific nodes.
155
+
This is a common approach used by tools like kubeadm.
125
156
126
157
Self-hosted
127
-
: The control plane runs as Pods within the Kubernetes cluster itself, managed by Deployments and StatefulSets or other Kubernetes primitives.
158
+
: The control plane runs as Pods within the Kubernetes cluster itself, managed by Deployments
159
+
and StatefulSets or other Kubernetes primitives.
128
160
129
161
Managed Kubernetes services
130
162
: Cloud providers often abstract away the control plane, managing its components as part of their service offering.
131
163
132
164
### Workload placement considerations
133
165
134
-
The placement of workloads, including the control plane components, can vary based on cluster size, performance requirements, and operational policies:
166
+
The placement of workloads, including the control plane components, can vary based on cluster size,
167
+
performance requirements, and operational policies:
135
168
136
169
- In smaller or development clusters, control plane components and user workloads might run on the same nodes.
137
-
- Larger production clusters often dedicate specific nodes to control plane components, separating them from user workloads.
170
+
- Larger production clusters often dedicate specific nodes to control plane components,
171
+
separating them from user workloads.
138
172
- Some organizations run critical add-ons or monitoring tools on control plane nodes.
139
173
140
174
### Cluster management tools
141
175
142
-
Tools like kubeadm, kops, and Kubespray offer different approaches to deploying and managing clusters, each with its own method of component layout and management.
176
+
Tools like kubeadm, kops, and Kubespray offer different approaches to deploying and managing clusters,
177
+
each with its own method of component layout and management.
143
178
144
-
The flexibility of Kubernetes architecture allows organizations to tailor their clusters to specific needs, balancing factors such as operational complexity, performance, and management overhead.
179
+
The flexibility of Kubernetes architecture allows organizations to tailor their clusters to specific needs,
180
+
balancing factors such as operational complexity, performance, and management overhead.
145
181
146
182
### Customization and extensibility
147
183
@@ -151,13 +187,15 @@ Kubernetes architecture allows for significant customization:
151
187
- API servers can be extended with CustomResourceDefinitions and API Aggregation.
152
188
- Cloud providers can integrate deeply with Kubernetes using the cloud-controller-manager.
153
189
154
-
The flexibility of Kubernetes architecture allows organizations to tailor their clusters to specific needs, balancing factors such as operational complexity, performance, and management overhead.
190
+
The flexibility of Kubernetes architecture allows organizations to tailor their clusters to specific needs,
191
+
balancing factors such as operational complexity, performance, and management overhead.
155
192
156
193
## {{% heading "whatsnext" %}}
157
194
158
195
Learn more about the following:
159
196
160
-
-[Nodes](/docs/concepts/architecture/nodes/) and [their communication](/docs/concepts/architecture/control-plane-node-communication/)
: Software responsible for running containers. Read[Container Runtimes](/docs/setup/production-environment/container-runtimes/) to learn more.
58
-
58
+
: Software responsible for running containers. Read
59
+
[Container Runtimes](/docs/setup/production-environment/container-runtimes/) to learn more.
59
60
60
61
{{% thirdparty-content single="true" %}}
61
62
@@ -80,6 +81,9 @@ Addons extend the functionality of Kubernetes. A few important examples include:
80
81
81
82
## Flexibility in Architecture
82
83
83
-
Kubernetes allows for flexibility in how these components are deployed and managed. The architecture can be adapted to various needs, from small development environments to large-scale production deployments.
84
+
Kubernetes allows for flexibility in how these components are deployed and managed.
85
+
The architecture can be adapted to various needs, from small development environments
86
+
to large-scale production deployments.
84
87
85
-
For more detailed information about each component and various ways to configure your cluster architecture, see the [Cluster Architecture](/docs/concepts/architecture/) page.
88
+
For more detailed information about each component and various ways to configure your
89
+
cluster architecture, see the [Cluster Architecture](/docs/concepts/architecture/) page.
0 commit comments