以双栈模式安装 mesh
安装支持双栈网络的 Istio,以在服务 mesh 中启用 IPv4 和 IPv6 连接。
前提条件
- Kubernetes 已配置双栈支持。
- 必须安装 Alauda Container Platform Networking for Multus 插件,且 kube-ovn 必须为 v4.1.5 或更高版本。
- 已在集群上安装 Alauda Service Mesh v2 Operator。
操作步骤
安装 IstioCNI
运行以下命令安装 IstioCNI 资源:
使用双栈配置安装 Istio
-
运行以下命令,创建使用双栈配置的
Istio资源: -
运行以下命令,等待控制平面返回
Ready状态条件:
验证双栈 mesh
要确认双栈 mesh 正常运行,请使用不同的 IP family 配置部署示例应用。目标是验证 mesh 能够处理 IPv4、IPv6 和双栈服务。
操作步骤
为示例应用创建 namespace
创建以下 namespace,每个 namespace 承载具有特定 IP 配置的 tcp-echo 服务:
-
dual-stack:承载同时监听 IPv4 和 IPv6 地址的tcp-echo服务。 -
ipv4:承载仅监听 IPv4 地址的tcp-echo服务。 -
ipv6:承载仅监听 IPv6 地址的tcp-echo服务。 -
sleep:承载用于发送测试请求的客户端应用。
为 namespace 启用 sidecar 注入
运行以下命令为 namespace 添加标签,以启用自动 Istio sidecar 注入:
部署示例应用
-
使用双栈配置部署
tcp-echo应用: -
使用仅 IPv4 配置部署
tcp-echo应用: -
使用仅 IPv6 配置部署
tcp-echo应用: -
部署
sleep应用,该应用将作为客户端发送测试请求: -
等待所有 deployment 可用:
验证双栈服务配置
运行以下命令,确认 dual-stack namespace 中的 tcp-echo 服务已配置 RequireDualStack 的 ipFamilyPolicy:
示例输出
验证与双栈服务的连接
运行以下命令,从 sleep pod 向双栈 tcp-echo 服务发送测试请求:
示例输出
验证与 IPv4 和 IPv6 服务的连接
-
向仅 IPv4 的
tcp-echo服务发送测试请求:示例输出
-
向仅 IPv6 的
tcp-echo服务发送测试请求:示例输出
从开发环境中移除双栈 mesh
完成验证和实验后,应移除双栈配置,以清理开发环境并释放资源。
操作步骤
执行以下命令,移除所有 Istio 组件和示例应用: