diff --git a/chart/samples/istio-sample-nftables.yaml b/chart/samples/istio-sample-nftables.yaml new file mode 100644 index 000000000..a2dc06f87 --- /dev/null +++ b/chart/samples/istio-sample-nftables.yaml @@ -0,0 +1,10 @@ +apiVersion: sailoperator.io/v1 +kind: Istio +metadata: + name: default +spec: + version: master + namespace: istio-system + values: + global: + nativeNftables: true diff --git a/chart/samples/istiocni-sample-nftables.yaml b/chart/samples/istiocni-sample-nftables.yaml new file mode 100644 index 000000000..5a93fe34c --- /dev/null +++ b/chart/samples/istiocni-sample-nftables.yaml @@ -0,0 +1,10 @@ +apiVersion: sailoperator.io/v1 +kind: IstioCNI +metadata: + name: default +spec: + version: master + namespace: istio-cni + values: + global: + nativeNftables: true diff --git a/docs/common/istio-nftables.adoc b/docs/common/istio-nftables.adoc new file mode 100644 index 000000000..84498b355 --- /dev/null +++ b/docs/common/istio-nftables.adoc @@ -0,0 +1,248 @@ +// Variables embedded for GitHub compatibility +:istio_latest_version: 1.27.2 +:istio_latest_version_revision_format: 1-27-2 +:istio_latest_tag: v1.27-latest +:istio_release_name: release-1.27 +:istio_latest_minus_one_version: 1.27.2 +:istio_latest_minus_one_version_revision_format: 1-27-2 + +link:../README.md[Return to Project Root] + +== Table of Contents + +* link:#istio-nftables-backend[Istio nftables backend] + ** link:#prerequisites[Prerequisites] + ** link:#installation[Installation] + *** link:#install-in-sidecar-mode[Install in Sidecar Mode] + *** link:#install-in-ambient-mode[Install in Ambient Mode] + ** link:#validation[Validation] + ** link:#Upgrade[Upgrade] + *** link:#upgrade-in-sidecar-mode[Upgrade in Sidecar Mode] + *** link:#upgrade-in-ambient-mode[Upgrade in Ambient Mode] + +=== Istio nftables backend + +This document outlines the configuration steps for the nftables backend in Istio. As the official successor to iptables, nftables offers a +modern, high-performance alternative for transparently redirecting traffic to and from the Envoy sidecar proxy. +Many major Linux distributions are actively moving towards adopting native nftables support. + +=== Prerequisites + +* *nftables version*: Requires `+nft+` binary version 1.0.1 or later. + +=== Installation + +The support for native nftables in Istio sidecar mode was implemented in the upstream istio https://istio.io/latest/news/releases/1.27.x/announcing-1.27[release-1.27]. +It is disabled by default. To enable it, you can set a feature flag as `+values.global.nativeNftables=true+`. + +==== Install in Sidecar Mode + +When installing `Istio` and `IstioCNI` resources with the Sail Operator, you can enable nftables by setting `spec.values.global.nativeNftables=true` in the resource. This option configures Istio to use the nftables backend for traffic redirection instead of iptables. + +. Create the `+istio-system+` and `+istio-cni+` namespaces. + +[source,sh] +---- +kubectl create namespace istio-system +kubectl create namespace istio-cni +---- + +[start=2] +. Create the `+IstioCNI+` resource with `+spec.values.global.nativeNftables=true+`: + +[source,sh] +---- +cat <