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/
This commit is contained in:
+2
-75
@@ -286,8 +286,8 @@ tracker instead of the kubeadm or kubernetes issue trackers.
|
|||||||
Several external projects provide Kubernetes Pod networks using CNI, some of which also
|
Several external projects provide Kubernetes Pod networks using CNI, some of which also
|
||||||
support [Network Policy](/docs/concepts/services-networking/networkpolicies/).
|
support [Network Policy](/docs/concepts/services-networking/networkpolicies/).
|
||||||
|
|
||||||
See the list of available
|
See a list of add-ons that implement the
|
||||||
[networking and network policy add-ons](/docs/concepts/cluster-administration/addons/#networking-and-network-policy).
|
[Kubernetes networking model](/docs/concepts/cluster-administration/networking/#how-to-implement-the-kubernetes-networking-model).
|
||||||
|
|
||||||
You can install a Pod network add-on with the following command on the
|
You can install a Pod network add-on with the following command on the
|
||||||
control-plane node or a node that has the kubeconfig credentials:
|
control-plane node or a node that has the kubeconfig credentials:
|
||||||
@@ -297,79 +297,6 @@ kubectl apply -f <add-on.yaml>
|
|||||||
```
|
```
|
||||||
|
|
||||||
You can install only one Pod network per cluster.
|
You can install only one Pod network per cluster.
|
||||||
Below you can find installation instructions for some popular Pod network plugins:
|
|
||||||
|
|
||||||
{{< tabs name="tabs-pod-install" >}}
|
|
||||||
|
|
||||||
{{% tab name="Calico" %}}
|
|
||||||
[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`.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
```shell
|
|
||||||
kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml
|
|
||||||
```
|
|
||||||
|
|
||||||
{{% /tab %}}
|
|
||||||
|
|
||||||
{{% tab name="Cilium" %}}
|
|
||||||
|
|
||||||
To deploy Cilium you just need to run:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
kubectl create -f https://raw.githubusercontent.com/cilium/cilium/v1.8/install/kubernetes/quick-install.yaml
|
|
||||||
```
|
|
||||||
|
|
||||||
Once all Cilium Pods are marked as `READY`, you start using your cluster.
|
|
||||||
|
|
||||||
```shell
|
|
||||||
kubectl get pods -n kube-system --selector=k8s-app=cilium
|
|
||||||
```
|
|
||||||
The output is similar to this:
|
|
||||||
```
|
|
||||||
NAME READY STATUS RESTARTS AGE
|
|
||||||
cilium-drxkl 1/1 Running 0 18m
|
|
||||||
```
|
|
||||||
|
|
||||||
Cilium can be used as a replacement for kube-proxy, see [Kubernetes without kube-proxy](https://docs.cilium.io/en/stable/gettingstarted/kubeproxy-free).
|
|
||||||
|
|
||||||
For more information about using Cilium with Kubernetes, see [Kubernetes Install guide for Cilium](https://docs.cilium.io/en/stable/kubernetes/).
|
|
||||||
|
|
||||||
{{% /tab %}}
|
|
||||||
|
|
||||||
{{% tab name="Contiv-VPP" %}}
|
|
||||||
[Contiv-VPP](https://contivpp.io/) employs a programmable CNF vSwitch based on [FD.io VPP](https://fd.io/),
|
|
||||||
offering feature-rich & high-performance cloud-native networking and services.
|
|
||||||
|
|
||||||
It implements k8s services and network policies in the user space (on VPP).
|
|
||||||
|
|
||||||
Please refer to this installation guide: [Contiv-VPP Manual Installation](https://github.com/contiv/vpp/blob/master/docs/setup/MANUAL_INSTALL.md)
|
|
||||||
{{% /tab %}}
|
|
||||||
|
|
||||||
{{% tab name="Kube-router" %}}
|
|
||||||
|
|
||||||
Kube-router relies on kube-controller-manager to allocate Pod CIDR for the nodes. Therefore, use `kubeadm init` with the `--pod-network-cidr` flag.
|
|
||||||
|
|
||||||
Kube-router provides Pod networking, network policy, and high-performing IP Virtual Server(IPVS)/Linux Virtual Server(LVS) based service proxy.
|
|
||||||
|
|
||||||
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).
|
|
||||||
{{% /tab %}}
|
|
||||||
|
|
||||||
{{% tab name="Weave Net" %}}
|
|
||||||
|
|
||||||
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/).
|
|
||||||
|
|
||||||
Weave Net works on `amd64`, `arm`, `arm64` and `ppc64le` platforms without any extra action required.
|
|
||||||
Weave Net sets hairpin mode by default. This allows Pods to access themselves via their Service IP address
|
|
||||||
if they don't know their PodIP.
|
|
||||||
|
|
||||||
```shell
|
|
||||||
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
|
|
||||||
```
|
|
||||||
{{% /tab %}}
|
|
||||||
|
|
||||||
{{< /tabs >}}
|
|
||||||
|
|
||||||
|
|
||||||
Once a Pod network has been installed, you can confirm that it is working by
|
Once a Pod network has been installed, you can confirm that it is working by
|
||||||
checking that the CoreDNS Pod is `Running` in the output of `kubectl get pods --all-namespaces`.
|
checking that the CoreDNS Pod is `Running` in the output of `kubectl get pods --all-namespaces`.
|
||||||
|
|||||||
Reference in New Issue
Block a user