安装 Istio ambient mode
你可以使用 Alauda Service Mesh Operator 2.1.1 或更高版本,在 Alauda Container Platform 上以 ambient mode 部署 Istio。
前提条件
- 必须安装 Alauda Container Platform Multi-Network(以前称为 Alauda Container Platform Networking for Multus)插件。
- kube-ovn 必须为 v4.1.5 或更高版本,并且必须使用 overlay 网络。Ambient mode 不适用于 kube-ovn underlay 网络;请参阅 Ambient mode 不适用于 kube-ovn underlay 网络。
- 集群版本与计划部署的 Istio 版本相匹配:Istio 1.30 支持 Kubernetes 1.32 至 1.36,Istio 1.28 支持 Kubernetes 1.30 至 1.34。
- 已安装 Alauda Service Mesh Operator 2.1.1 或更高版本。
- 集群管理员使用
cluster-admin角色建立了活动的 ACP CLI (kubectl) 会话。 - 已在本地安装
istioctl,以便运行这些说明中的命令。
操作步骤
安装 Istio Container Network Interface (CNI)
-
创建
istio-cni命名空间,并添加标签istio-discovery=enabled: -
创建名为
istio-cni.yaml的 IstioCNI 资源:- 必须将
profile字段设置为ambient。
NOTE- 请勿将承载 ambient 工作负载的命名空间添加到
values.cni.excludeNamespaces。从 Istio 1.30 开始,Istio CNI 智能体会遵循此列表,并将被排除命名空间中的已加入工作负载从网格中移除。 - 默认情况下,ambient 工作负载会启用 DNS 捕获。Istio CNI 会在启动时协调已加入工作负载的 Pod 内重定向规则,因此无需重启这些工作负载。
- 必须将
-
应用 IstioCNI CR:
-
等待 IstioCNI Pod 就绪:
安装 Istio 控制平面
-
创建
istio-system命名空间,并添加标签istio-discovery=enabled: -
创建名为
istio.yaml的 Istio 资源:- 必须将
profile字段设置为ambient。 - 必须将
.spec.values.pilot.trustedZtunnelNamespace配置为与 ZTunnel 资源将要安装到的命名空间一致。 discoverySelectors配置可确保控制平面仅监视带有istio-discovery=enabled标签的命名空间,从而降低配置开销,并支持多个 service mesh 在同一集群上共存。详情请参阅 Ambient mode 中的发现选择器。
- 必须将
-
应用 Istio 自定义资源 (CR):
-
等待 Istio 控制平面就绪:
安装 ZTunnel 代理
-
创建
ztunnel命名空间,并添加标签istio-discovery=enabled:NOTEZTunnel资源的命名空间名称必须与Istio配置中的trustedZtunnelNamespace参数一致。 -
创建名为
ztunnel.yaml的 ZTunnel 资源: -
应用 ZTunnel CR:
-
等待 ZTunnel Pod 就绪: