Installing Istio ambient mode
You can deploy Istio in ambient mode on Alauda Container Platform with Alauda Service Mesh Operator 2.1.1 or later.
TOC
PrerequisitesProcedureInstall the Istio Container Network Interface (CNI)Install the Istio control planeInstall the ZTunnel proxyPrerequisites
- The Alauda Container Platform Networking for Multus plugin must be installed, and kube-ovn must be v4.1.5 or later.
- Alauda Service Mesh Operator 2.1.1 or later is installed.
- An active ACP CLI (
kubectl) session by a cluster administrator with thecluster-adminrole. - You have
istioctlinstalled locally so that you can use to run these instructions.
Procedure
Install the Istio Container Network Interface (CNI)
-
Create the
istio-cninamespace and add a labelistio-discovery=enabled: -
Create the IstioCNI resource named
istio-cni.yaml:- You must set the
profilefield toambient. - Set
spec.values.cni.ambient.reconcileIptablesOnStartuptotrue. ThereconcileIptablesOnStartupoption enables the IstioCNI agent to detect and repair incompatible iptables rules in already-running ambient pods during CNI agent startup, handling scenarios such as upgrades or rule drift.
- You must set the
-
Apply the IstioCNI CR:
-
Wait for the IstioCNI pods to become ready:
Install the Istio control plane
-
Create the
istio-systemnamespace and add a labelistio-discovery=enabled: -
Create an Istio resource named
istio.yaml:- You must set the
profilefield toambient. - You must configure
.spec.values.pilot.trustedZtunnelNamespaceto match the namespace where the ZTunnel resource will be installed.. - The
discoverySelectorsconfiguration ensures that the control plane only monitors namespaces labeled withistio-discovery=enabled, which helps reduce configuration overhead and enables multiple service meshes to coexist on the same cluster. See Discovery selectors in ambient mode for details.
- You must set the
-
Apply the Istio custom resource (CR):
-
Wait for the Istio control plane to become ready:
Install the ZTunnel proxy
-
Create the
ztunnelnamespace and add a labelistio-discovery=enabled:NOTEThe namespace name for the
ZTunnelresource must match thetrustedZtunnelNamespaceparameter in theIstioconfiguration. -
Create the ZTunnel resource named
ztunnel.yaml: -
Apply the ZTunnel CR:
-
Wait for the ZTunnel pods to become ready: