Skip to content

Commit 67d95db

Browse files
committed
kubeadm: remove the preferred / popular list of CNIs
Kubeadm should be CNI agnostic and should not define what is considered a popular CNI plugin and what isn't. - Remove the tabs that list CNIs such as Calico, WeaveNet, etc. - Preserve the note that Calico is currently the only CNI kubeadm e2e tests are run against. - Change the link to enumerate CNIs to: /docs/concepts/cluster-administration/networking/
1 parent bb01684 commit 67d95db

File tree

1 file changed

+7
-80
lines changed

1 file changed

+7
-80
lines changed

content/en/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm.md

Lines changed: 7 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ weight: 30
88

99
<!-- overview -->
1010

11-
<img src="https://raw.githubusercontent.com/kubernetes/kubeadm/master/logos/stacked/color/kubeadm-stacked-color.png" align="right" width="150px">The `kubeadm` tool helps you bootstrap a minimum viable Kubernetes cluster that conforms to best practices. In fact, you can use `kubeadm` to set up a cluster that will pass the [Kubernetes Conformance tests](https://kubernetes.io/blog/2017/10/software-conformance-certification).
11+
<img src="https://raw.githubusercontent.com/kubernetes/kubeadm/master/logos/stacked/color/kubeadm-stacked-color.png" align="right" width="150px">The `kubeadm` tool helps you bootstrap a minimum viable Kubernetes cluster that conforms to best practices. In fact, you can use `kubeadm` to set up a cluster that will pass the [Kubernetes Conformance tests](https://kubernetes.io/blog/2017/10/software-conformance-certification).
1212
`kubeadm` also supports other cluster
1313
lifecycle functions, such as [bootstrap tokens](/docs/reference/access-authn-authz/bootstrap-tokens/) and cluster upgrades.
1414

@@ -254,25 +254,25 @@ Read all of this advice carefully before proceeding.
254254

255255
**You must deploy a
256256
{{< glossary_tooltip text="Container Network Interface" term_id="cni" >}}
257-
(CNI) based Pod network add-on so that your Pods can communicate with each other.
257+
(CNI) based Pod network add-on so that your Pods can communicate with each other.
258258
Cluster DNS (CoreDNS) will not start up before a network is installed.**
259259

260260
- Take care that your Pod network must not overlap with any of the host
261-
networks: you are likely to see problems if there is any overlap.
261+
networks: you are likely to see problems if there is any overlap.
262262
(If you find a collision between your network plugin’s preferred Pod
263263
network and some of your host networks, you should think of a suitable
264264
CIDR block to use instead, then use that during `kubeadm init` with
265265
`--pod-network-cidr` and as a replacement in your network plugin’s YAML).
266266

267267
- By default, `kubeadm` sets up your cluster to use and enforce use of
268268
[RBAC](/docs/reference/access-authn-authz/rbac/) (role based access
269-
control).
269+
control).
270270
Make sure that your Pod network plugin supports RBAC, and so do any manifests
271271
that you use to deploy it.
272272

273273
- If you want to use IPv6--either dual-stack, or single-stack IPv6 only
274274
networking--for your cluster, make sure that your Pod network plugin
275-
supports IPv6.
275+
supports IPv6.
276276
IPv6 support was added to CNI in [v0.6.0](https://github.com/containernetworking/cni/releases/tag/v0.6.0).
277277

278278
{{< /caution >}}
@@ -286,8 +286,8 @@ tracker instead of the kubeadm or kubernetes issue trackers.
286286
Several external projects provide Kubernetes Pod networks using CNI, some of which also
287287
support [Network Policy](/docs/concepts/services-networking/networkpolicies/).
288288

289-
See the list of available
290-
[networking and network policy add-ons](/docs/concepts/cluster-administration/addons/#networking-and-network-policy).
289+
See a list of add-ons that implement the
290+
[Kubernetes networking model](/docs/concepts/cluster-administration/networking/#how-to-implement-the-kubernetes-networking-model).
291291

292292
You can install a Pod network add-on with the following command on the
293293
control-plane node or a node that has the kubeconfig credentials:
@@ -297,79 +297,6 @@ kubectl apply -f <add-on.yaml>
297297
```
298298

299299
You can install only one Pod network per cluster.
300-
Below you can find installation instructions for some popular Pod network plugins:
301-
302-
{{< tabs name="tabs-pod-install" >}}
303-
304-
{{% tab name="Calico" %}}
305-
[Calico](https://docs.projectcalico.org/latest/introduction/) is a networking and network policy provider. Calico supports a flexible set of networking options so you can choose the most efficient option for your situation, including non-overlay and overlay networks, with or without BGP. Calico uses the same engine to enforce network policy for hosts, pods, and (if using Istio & Envoy) applications at the service mesh layer. Calico works on several architectures, including `amd64`, `arm64`, and `ppc64le`.
306-
307-
Calico will automatically detect which IP address range to use for pod IPs based on the value provided via the `--pod-network-cidr` flag or via kubeadm's configuration.
308-
309-
```shell
310-
kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml
311-
```
312-
313-
{{% /tab %}}
314-
315-
{{% tab name="Cilium" %}}
316-
317-
To deploy Cilium you just need to run:
318-
319-
```shell
320-
kubectl create -f https://raw.githubusercontent.com/cilium/cilium/v1.8/install/kubernetes/quick-install.yaml
321-
```
322-
323-
Once all Cilium Pods are marked as `READY`, you start using your cluster.
324-
325-
```shell
326-
kubectl get pods -n kube-system --selector=k8s-app=cilium
327-
```
328-
The output is similar to this:
329-
```
330-
NAME READY STATUS RESTARTS AGE
331-
cilium-drxkl 1/1 Running 0 18m
332-
```
333-
334-
Cilium can be used as a replacement for kube-proxy, see [Kubernetes without kube-proxy](https://docs.cilium.io/en/stable/gettingstarted/kubeproxy-free).
335-
336-
For more information about using Cilium with Kubernetes, see [Kubernetes Install guide for Cilium](https://docs.cilium.io/en/stable/kubernetes/).
337-
338-
{{% /tab %}}
339-
340-
{{% tab name="Contiv-VPP" %}}
341-
[Contiv-VPP](https://contivpp.io/) employs a programmable CNF vSwitch based on [FD.io VPP](https://fd.io/),
342-
offering feature-rich & high-performance cloud-native networking and services.
343-
344-
It implements k8s services and network policies in the user space (on VPP).
345-
346-
Please refer to this installation guide: [Contiv-VPP Manual Installation](https://github.com/contiv/vpp/blob/master/docs/setup/MANUAL_INSTALL.md)
347-
{{% /tab %}}
348-
349-
{{% tab name="Kube-router" %}}
350-
351-
Kube-router relies on kube-controller-manager to allocate Pod CIDR for the nodes. Therefore, use `kubeadm init` with the `--pod-network-cidr` flag.
352-
353-
Kube-router provides Pod networking, network policy, and high-performing IP Virtual Server(IPVS)/Linux Virtual Server(LVS) based service proxy.
354-
355-
For information on using the `kubeadm` tool to set up a Kubernetes cluster with Kube-router, please see the official [setup guide](https://github.com/cloudnativelabs/kube-router/blob/master/docs/kubeadm.md).
356-
{{% /tab %}}
357-
358-
{{% tab name="Weave Net" %}}
359-
360-
For more information on setting up your Kubernetes cluster with Weave Net, please see [Integrating Kubernetes via the Addon](https://www.weave.works/docs/net/latest/kube-addon/).
361-
362-
Weave Net works on `amd64`, `arm`, `arm64` and `ppc64le` platforms without any extra action required.
363-
Weave Net sets hairpin mode by default. This allows Pods to access themselves via their Service IP address
364-
if they don't know their PodIP.
365-
366-
```shell
367-
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
368-
```
369-
{{% /tab %}}
370-
371-
{{< /tabs >}}
372-
373300

374301
Once a Pod network has been installed, you can confirm that it is working by
375302
checking that the CoreDNS Pod is `Running` in the output of `kubectl get pods --all-namespaces`.

0 commit comments

Comments
 (0)