Installing Alauda Service Mesh
Installing Alauda Service Mesh consists four major parts:
- Installing the Alauda Service Mesh v2 Operator
- Deploying the Istio CNI plugin
- Deploying the Istio control plane
- Customizing Istio configuration
WARNING
Do not install Alauda Service Mesh and Alauda Service Mesh v2 in the same Kubernetes cluster, as this may result in functional conflicts.
Migration guide will be available in a future release.
TOC
Deploying Istio with the Alauda Service Mesh v2 Operator
To deploy Istio using Alauda Service Mesh v2 Operator, Istio
resource is required to be created.
The Operator then creates an IstioRevision
resources, representing a distinct revision of the Istio control plane.
The Istio control plane is subsequently deployed based on these IstioRevision
resources.
If the update strategy of the Istio
resource is set to RevisionBased
, the Operator may create additional IstioRevision
resources to manage control plane upgrades.
Installing the Alauda Service Mesh v2 Operator
Prerequisites
- The Alauda Service Mesh v2 must be uploaded.
- You are logged in to the Alauda Container Platform web console as cluster-admin.
- The Alauda Container Platform Networking for Multus plugin must be installed.
Procedure
- In the Alauda Container Platform web console, navigate to Administrator.
- Select Marketplace > OperatorHub.
- Search for the Alauda Service Mesh v2.
- Locate the Alauda Service Mesh v2, and click to select it.
- Click Install.
- On the Install Alauda Service Mesh v2 dialogue, perform the following steps:
- Select an Channel
- Choose the stable channel to install the latest stable version of the Alauda Service Mesh v2 Operator. It is the default channel for installing the Operator.
- To install a specific version of the Alauda Service Mesh v2 Operator, choose the corresponding
stable-<version>
channel. For example, to install the Alauda Service Mesh v2 Operator version 2.0.x, use the stable-2.0 channel.
- Click Install and Confirm to install the Operator.
Verification
Verify that the Operator installation status is reported as Succeeded
in the Installation Info section.
Custom Resource Definitions Installed by the Operator
The Operator installs the following categories of Custom Resource Definitions (CRDs):
-
Sail Operator CRDs:
These CRDs belong to the sailoperator.io
API group and define custom resources for managing Istio components, including Istio
, IstioRevision
, IstioCNI
, and ZTunnel
.
Refer to the Sail Operator API reference for details.
-
Istio CRDs:
These CRDs manage mesh configuration, service discovery, traffic routing, and observability. They belong to the istio.io
API groups such as networking.istio.io
, security.istio.io
, and telemetry.istio.io
.
See the Istio documentation for configuration guidance.
Deploying Istio Components
Both Istio
and IstioCNI
custom resources must be created to deploy the control plane and the Istio CNI plugin.
It's required to create these Istio
and IstioCNI
resources in separate namespaces.
Creating the namespace for Istio
kubectl create namespace istio-system
kubectl label namespace istio-system cpaas.io/project=cpaas-system
Creating the Istio
Resource via Web Console
Create the Istio
resource that will contain the YAML configuration for your Istio deployment.
The Alauda Service Mesh v2 Operator leverages this resource's configuration to deploy the Istio Control Plane.
Prerequisites
- The Alauda Service Mesh v2 Operator must be installed.
- You are logged in to the Alauda Container Platform web console as cluster-admin.
- The Alauda Container Platform Networking for Multus plugin must be installed.
Procedure
- In the Alauda Container Platform web console, navigate to Administrator.
- Select Marketplace > OperatorHub.
- Search for the Alauda Service Mesh v2.
- Locate the Alauda Service Mesh v2, and click to select it.
- Click All Instances tab.
- Click Create.
- Locate and Select Istio and then click Create.
- Select the
istio-system
from the Namespace drop down.
- Click Create.
Verification
Wait until the .status.state
field of the Istio
resource to be Healthy
.
Creating the namespace for IstioCNI
kubectl create namespace istio-cni
Creating the IstioCNI resource using web console
Create an Istio Container Network Interface (CNI) resource, which contains the configuration file for the Istio CNI plugin.
The Alauda Service Mesh v2 Operator uses this resource's configuration to deploy the CNI pod.
Prerequisites
- You are logged in to the Alauda Container Platform web console as cluster-admin.
- The Alauda Service Mesh v2 Operator must be installed.
- The Alauda Container Platform Networking for Multus plugin must be installed.
Procedure
- In the Alauda Container Platform web console, navigate to Administrator.
- Select Marketplace > OperatorHub.
- Search for the Alauda Service Mesh v2.
- Locate the Alauda Service Mesh v2, and click to select it.
- Click All Instances tab.
- Click Create.
- Locate and Select IstioCNI and then click Create.
- Select the
istio-cni
from the Namespace drop down.
- Click YAML tab.
- Add the following YAML snippet to the YAML code editor:
apiVersion: sailoperator.io/v1
kind: IstioCNI
spec:
# Applying the following contents to the yaml code editor:
values:
cni:
cniConfDir: /etc/cni/multus/net.d # /etc/cni/net.d in ACP 4.0
excludeNamespaces:
- istio-cni
- kube-system
- Click Create.
Verification
Wait until the .status.state
field of the IstioCNI
resource to be Healthy
.
Customizing Istio configuration
The values
field of the Istio
custom resource definition, which was created when the control plane was deployed,
can be used to customize Istio configuration using Istio's Helm
configuration values.
Procedure
- In the Alauda Container Platform web console, navigate to Administrator.
- Select Marketplace > OperatorHub.
- Search for the Alauda Service Mesh v2.
- Locate the Alauda Service Mesh v2, and click to select it.
- Click All Instances tab.
- Click the
Istio
instance, named default
.
- Click YAML to view the
Istio
configuration.
- Click Actions > Update to make modifications to the
Istio
configuration.
For a complete list of available configuration for the values field, refer to sail-operator's documentation.