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: modules/deploy/pages/deployment-option/self-hosted/kubernetes/k-deployment-overview.adoc
+9-6Lines changed: 9 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -96,6 +96,8 @@ Managed Kubernetes services, such as Google Kubernetes Engine (GKE) and Amazon E
96
96
97
97
You remain responsible for deploying and maintaining Redpanda instances on worker nodes.
98
98
99
+
IMPORTANT: Deploy Kubernetes clusters with *unmanaged (manual) node updates*. Managed (automatic) updates during cluster deployment can lead to service downtime, data loss, or quorum instability. Transitioning from managed updates to unmanaged updates after deployment may require downtime. To avoid these disruptions, plan for unmanaged node updates from the start. See xref:deploy:deployment-option/self-hosted/kubernetes/k-requirements.adoc#node-updates[Kubernetes Cluster Requirements and Recommendations].
100
+
99
101
=== Bare-metal Kubernetes environments
100
102
101
103
Bare-metal Kubernetes environments give you complete control over both the control plane and the worker nodes, which can be advantageous when you want the following:
@@ -113,14 +115,15 @@ This documentation follows conventions to help users easily identify Kubernetes
113
115
114
116
== Next steps
115
117
116
-
Whether you're deploying locally or in the cloud, choose one of the following guides to get started:
118
+
- Get started
119
+
** xref:./local-guide.adoc[Local Deployment Guide] (kind and minikube)
120
+
** xref:./aks-guide.adoc[Azure Kubernetes Service Guide] (AKS)
121
+
** xref:./eks-guide.adoc[Elastic Kubernetes Service Guide] (EKS)
Provision one physical node or virtual machine (VM) for each Redpanda broker that you plan to deploy in your Redpanda cluster.
37
-
Each Redpanda broker requires its own dedicated {node} for the following reasons:
37
+
Each Redpanda broker requires its own dedicated node for the following reasons:
38
38
39
-
- *Resource isolation*: Redpanda brokers are designed to make full use of available system resources, including CPU and memory. By dedicating a {node} to each broker, you ensure that these resources aren't shared with other applications or processes, avoiding potential performance bottlenecks or contention.
40
-
- *External networking*: External clients should connect directly to the broker that owns the partition they're interested in. This means that each broker must be individually addressable. As clients must connect to the specific broker that is the leader of the partition, they need a mechanism to directly address each broker in the cluster. Assigning each broker to its own dedicated {node} makes this direct addressing feasible, since each {node} will have a unique address. See <<External networking>>.
39
+
- *Resource isolation*: Redpanda brokers are designed to make full use of available system resources, including CPU and memory. By dedicating a node to each broker, you ensure that these resources aren't shared with other applications or processes, avoiding potential performance bottlenecks or contention.
40
+
- *External networking*: External clients should connect directly to the broker that owns the partition they're interested in. This means that each broker must be individually addressable. As clients must connect to the specific broker that is the leader of the partition, they need a mechanism to directly address each broker in the cluster. Assigning each broker to its own dedicated node makes this direct addressing feasible, since each node will have a unique address. See <<External networking>>.
41
41
- *Fault tolerance*: Ensuring each broker operates on a separate node enhances fault tolerance. If one node experiences issues, it won't directly impact the other brokers.
42
42
43
43
ifdef::env-kubernetes[]
44
-
NOTE: The Redpanda Helm chart configures xref:reference:k-redpanda-helm-spec.adoc#statefulset-podantiaffinity[`podAntiAffinity` rules] to make sure that each Redpanda broker runs on its own {node}.
44
+
NOTE: The Redpanda Helm chart configures xref:reference:k-redpanda-helm-spec.adoc#statefulset-podantiaffinity[`podAntiAffinity` rules] to make sure that each Redpanda broker runs on its own node.
45
45
46
46
47
47
*Recommendations*: xref:./kubernetes-deploy.adoc#pod-replicas[Deploy at least three Pod replicas].
@@ -51,11 +51,42 @@ ifndef::env-kubernetes[]
51
51
*Recommendations*: Deploy at least three Redpanda brokers.
52
52
endif::[]
53
53
54
+
[[node-updates]]
55
+
== Node maintenance and operating system upgrades
56
+
57
+
Ensure that node and operating system (OS) upgrades are manually managed when running Redpanda in production. Manual control avoids unplanned reboots or replacements that disrupt Redpanda brokers, causing service downtime, data loss, or quorum instability.
58
+
59
+
=== Limitations of automatic updates
60
+
61
+
Redpanda is stateful. Redpanda brokers manage partition data and leadership, making them sensitive to disruptions. Proper handling during maintenance is required to:
62
+
63
+
- Avoid data loss, especially for nodes with ephemeral or local storage.
64
+
- Ensure smooth leadership transitions by decommissioning brokers before removing a node.
65
+
- Minimize service downtime by upgrading nodes one at a time during planned maintenance windows.
66
+
67
+
However, automatic update mechanisms provided by cloud platforms may not meet Redpanda's stateful requirements. Common issues include:
68
+
69
+
- Hard timeouts for graceful shutdowns that may not allow Redpanda brokers enough time to complete decommissioning or leadership transitions.
70
+
- Replacements or reboots without ensuring data has been safely migrated or replicated, risking data loss.
71
+
- Parallel upgrades across multiple nodes, which can disrupt quorum or reduce cluster availability.
72
+
73
+
*Recommendations*:
74
+
75
+
- Disable automatic node maintenance or upgrades.
76
+
ifdef::env-kubernetes[]
77
+
To prevent managed Kubernetes services from automatically rebooting or upgrading nodes:
78
+
** **Azure AKS**: Set the OS upgrade channel to `None`. https://learn.microsoft.com/en-us/azure/aks/auto-upgrade-node-os-image[Azure Documentation^].
0 commit comments