Skip to content

Commit 63f32f4

Browse files
author
Tim Bannister
committed
Tidy prerequisites
Use tabs to make the comparison visually straighforward, and also to clearly indicate that the reader has a choice to make.
1 parent a8112a6 commit 63f32f4

File tree

1 file changed

+68
-10
lines changed

1 file changed

+68
-10
lines changed

content/en/docs/setup/production-environment/tools/kubeadm/high-availability.md

Lines changed: 68 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,22 +32,80 @@ LoadBalancer, or with dynamic PersistentVolumes.
3232

3333
## {{% heading "prerequisites" %}}
3434

35-
36-
For both methods you need this infrastructure:
37-
38-
- Three machines that meet [kubeadm's minimum requirements](/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#before-you-begin) for
39-
the control-plane nodes
40-
- Three machines that meet [kubeadm's minimum
35+
The prerequisites depend on which topology you have selected for your cluster's
36+
control plane:
37+
38+
{{< tabs name="prerequisite_tabs" >}}
39+
{{% tab name="Stacked etcd" %}}
40+
<!--
41+
note to reviewers: these prerequisites should match the start of the
42+
external etc tab
43+
-->
44+
45+
You need:
46+
47+
- Three or more machines that meet [kubeadm's minimum requirements](/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#before-you-begin) for
48+
the control-plane nodes. Having an odd number of control plane nodes can help
49+
with leader selection in the case of machine or zone failure.
50+
- including a {{< glossary_tooltip text="container runtime" term_id="container-runtime" >}}, already set up and working
51+
- Three or more machines that meet [kubeadm's minimum
52+
requirements](/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#before-you-begin) for the workers
53+
- including a container runtime, already set up and working
54+
- Full network connectivity between all machines in the cluster (public or
55+
private network)
56+
- Superuser privileges on all machines using `sudo`
57+
- You can use a different tool; this guide uses `sudo` in the examples.
58+
- SSH access from one device to all nodes in the system
59+
- `kubeadm` and `kubelet` already installed on all machines.
60+
61+
_See [Stacked etcd topology](/docs/setup/production-environment/tools/kubeadm/ha-topology/#stacked-etcd-topology) for context._
62+
63+
{{% /tab %}}
64+
{{% tab name="External etcd" %}}
65+
<!--
66+
note to reviewers: these prerequisites should match the start of the
67+
stacked etc tab
68+
-->
69+
You need:
70+
71+
- Three or more machines that meet [kubeadm's minimum requirements](/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#before-you-begin) for
72+
the control-plane nodes. Having an odd number of control plane nodes can help
73+
with leader selection in the case of machine or zone failure.
74+
- including a {{< glossary_tooltip text="container runtime" term_id="container-runtime" >}}, already set up and working
75+
- Three or more machines that meet [kubeadm's minimum
4176
requirements](/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#before-you-begin) for the workers
77+
- including a container runtime, already set up and working
4278
- Full network connectivity between all machines in the cluster (public or
4379
private network)
44-
- sudo privileges on all machines
80+
- Superuser privileges on all machines using `sudo`
81+
- You can use a different tool; this guide uses `sudo` in the examples.
4582
- SSH access from one device to all nodes in the system
46-
- `kubeadm` and `kubelet` installed on all machines. `kubectl` is optional.
83+
- `kubeadm` and `kubelet` already installed on all machines.
84+
85+
<!-- end of shared prerequisites -->
86+
87+
And you also need:
88+
- Three or more additional machines, that will become etcd cluster members.
89+
Having an odd number of members in the etcd cluster is a requirement for achieving
90+
optimal voting quorum.
91+
- These machines again need to have `kubeadm` and `kubelet` installed.
92+
- These machines also require a container runtime, that is already set up and working.
93+
94+
_See [External etcd topology](/docs/setup/production-environment/tools/kubeadm/ha-topology/#external-etcd-topology) for context._
95+
{{% /tab %}}
96+
{{< /tabs >}}
97+
98+
### Container images
99+
100+
Each host should have access read and fetch images from the Kubernetes container image registry, `k8s.gcr.io`.
101+
If you want to deploy a highly-available cluster where the hosts do not have access to pull images, this is possible. You must ensure by some other means that the correct container images are already available on the relevant hosts.
47102

48-
For the external etcd cluster only, you also need:
103+
### Command line interface {#kubectl}
49104

50-
- Three additional machines for etcd members
105+
To manage Kubernetes once your cluster is set up, you should
106+
[install kubectl](/docs/tasks/tools/#kubectl) on your PC. It is also useful
107+
to install the `kubectl` tool on each control plane node, as this can be
108+
helpful for troubleshooting.
51109

52110
<!-- steps -->
53111

0 commit comments

Comments
 (0)