设置双层或轻量级服务网格拓扑的详细步骤

Last published : Oct 06, 2026
部署双层或轻量级服务网格拓扑的先决条件可在设置服务图中获取。

配置 NetScaler 代理

为了在 Kubernetes 集群和 NetScaler Console 之间启用通信,您必须安装并配置一个代理。您可以使用虚拟机管理程序、公共云服务(例如 Microsoft Azure、AWS)或 NetScaler 实例上可用的内置代理(适用于 HA 部署)来配置代理。
请按照步骤配置代理。
注意
  • 您也可以使用现有代理。
  • 代理默认会自动升级到 NetScaler Console 最新版本。您可以在基础架构 > 实例 > 代理页面查看代理详细信息。您还可以指定代理升级发生的时间。有关更多信息,请参阅配置代理升级设置。

在代理中配置静态路由

在 Kubernetes 集群内部,所有容器化 Pod 都使用覆盖网络。无法直接使用这些私有 IP 地址建立通信。为了启用从 NetScaler Console 到 Kubernetes 集群的通信,您必须在代理中配置静态路由。
假设您的 Kubernetes 集群的 IP 地址如下:
  • Kubernetes 主节点 – 101.xx.xx.112
  • Kubernetes 工作节点 1 – 101.xx.xx.111
  • Kubernetes 工作节点 2 – 101.xx.xx.110
在 Kubernetes 主节点上,运行以下命令以识别 Pod 网络进行静态路由:
kubectl get nodes -o jsonpath="{range .items[*]}{'podNetwork: '}{.spec.podCIDR}{'\t'}{'gateway: '}{.status.addresses[0].address}{'\n'}{end}"
运行命令后,以下是示例输出:
示例命令
成功配置代理后:
  1. 使用 SSH 客户端登录到代理
  2. 键入 shell 并按 Enter 切换到 bash
  3. 使用命令 route add -net <public IP address range> <Kubernetes IP address> 配置静态路由
    例如:
    route add -net 192.168.0.0/24 101.xx.xx.112
    route add -net 192.168.1.0/24 101.xx.xx.111
    route add -net 192.168.2.0/24 101.xx.xx.110
  4. 使用 netstat -rn 验证配置
    静态路由
  5. 将这些路由命令附加到 /mpsconfig/svm.conf 文件中。
    1. 在 NetScaler 代理中,使用以下命令访问 svm.conf 文件:
      vim /mpsconfig/svm.conf
    2. 在 svm.conf 文件中添加静态路由。
      例如,route add -net 192.168.0.0/24 101.xx.xx.112。

从 GitHub 下载示例部署文件

  1. 使用命令 git clone https://github.com/citrix/citrix-k8s-ingress-controller.git 在主节点中克隆 GitHub 存储库。
  2. 访问 YAML 文件:
    cd citrix-k8s-ingress-controller/example/servicegraph-demo/

在 CPX YAML 文件中添加参数

注意
如果您使用的是 CPX 58.x 或更高版本,则在向代理注册时必须使用非 nsroot 密码。为确保安全,NetScaler 代理 61.x 或更高版本需要强制更改密码。如果您的 NetScaler 代理已升级到 61.x 或最新版本,则必须确保使用 CPX 58.x 或更高版本的构建。
您必须在 cpx.yaml 文件中包含以下参数,以确保 CPX 注册到 NetScaler Console:
- name: "NS_MGMT_SERVER"
  value: "xx.xx.xx.xx"
- name: "NS_MGMT_FINGER_PRINT"
  value: "xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
- name: "NS_HTTP_PORT"
  value: "9080"
- name: "NS_HTTPS_PORT"
  value: 9443"
- name: "NS_MGMT_USER"
  value: "nsroot"
- name: "NS_MGMT_PASS"
  value: <your password>
- name: "LOGSTREAM_COLLECTOR_IP"
  value: "xx.xx.xx.xx"
CPX YAML 文件
  • NS_MGMT_SERVER – 指示代理 IP 地址
  • NS_MGMT_FINGER_PRINT – 指示代理中 CPX 的身份验证。要获取指纹:
    1. 在 NetScaler Console 中,导航到 基础设施 > 实例 > 代理
    2. 选择代理,然后点击查看指纹
      指纹
  • NS_HTTP_PORT – 表示用于通信的 HTTP 端口
  • NS_HTTPS_PORT – 表示用于通信的 HTTPS 端口
  • NS_MGMT_USER - 表示用户名
  • NS_MGMT_PASS - 表示密码。指定您选择的密码
  • LOGSTREAM_COLLECTOR_IP – 表示代理 IP 地址,其中必须启用 Logstream 协议才能将日志数据从 CPX 传输到 NetScaler Console

在 NetScaler Console 中添加 VPX、SDX、MPX 或 BLX 实例

要在服务图中获取第 1 层 NetScaler 实例分析,您必须在 NetScaler Console 中添加 VPX/SDX/MPX/BLX 实例并启用 Web Insight。您必须为 NetScaler Console 启用 Web Insight 才能显示来自 VPX/SDX/MPX/BLX 实例的 Web 事务详细信息。
  1. 导航到基础架构 > 实例 > NetScaler
  2. 点击添加选项以添加实例。有关更多信息,请参阅在 NetScaler Console 中添加实例
  3. 添加实例后,选择虚拟服务器并启用 Web Insight。有关更多信息,请参阅管理许可并在虚拟服务器上启用分析

在 NetScaler Console 中添加 Kubernetes 集群

要添加 Kubernetes 集群:
  1. 使用管理员凭据登录到 NetScaler Console。
  2. 导航到 基础设施 > 编排 > Kubernetes > 集群。 “集群”页面随即显示。
  3. 单击 添加。
  4. 在 添加集群 页面中,指定以下参数:
    1. 名称 - 指定一个您选择的名称。
    2. API 服务器 URL - 您可以从 Kubernetes 主节点获取 API 服务器 URL 详细信息。
      1. 在 Kubernetes 主节点上,运行命令 kubectl cluster-info。
        API 服务器 URL
      2. 输入为 “Kubernetes master is running at.” 显示的 URL。
    3. 身份验证令牌 - 指定身份验证令牌。身份验证令牌是验证 Kubernetes 集群与 NetScaler Console 之间通信访问所需的。要生成身份验证令牌:
      在 Kubernetes 主节点上:
      1. 使用以下 YAML 创建服务帐户:
        apiVersion: v1
        kind: ServiceAccount
        metadata:
          name: <name>
          namespace: <namespace>
      2. 运行 kubectl create -f <yaml file>。
        服务帐户已创建。
      3. 运行 kubectl create clusterrolebinding <name> --clusterrole=cluster-admin --serviceaccount=<namespace>:<name> 以将集群角色绑定到服务帐户。
        服务帐户现在具有集群范围的访问权限。
        在创建服务帐户时会自动生成一个令牌。
      4. 运行 kubectl describe sa <name> 以查看令牌。
      5. 要获取密钥字符串,请运行 kubectl describe secret <token-name>。
        生成令牌
    4. 从列表中选择代理。
      注意
      确保选择您在 CPX YAML 中添加的相同代理。
    5. 单击 创建。
      添加集群

部署示例微服务应用程序

在主节点上:
  1. 运行 kubectl create -f namespace.yaml 以创建命名空间。
  2. 使用以下命令部署 hotdrink 微服务、入口和密钥:
    kubectl create -f team_hotdrink.yaml -n sg-demo
    kubectl create -f hotdrink-secret.yaml -n sg-demo

部署 CPX 并在 NetScaler Console 中注册 CPX

  1. 运行 kubectl create -f rbac.yaml 以部署集群角色和集群绑定。
  2. 运行 kubectl create -f cpx.yaml -n sg-demo 以部署 CPX。
部署后,CPX 注册会自动完成。

启用虚拟服务器自动选择以进行许可

注意
确保您有足够的虚拟服务器许可证。有关详细信息,请参阅 许可
在 NetScaler Console 中添加 Kubernetes 集群后,您必须确保自动选择虚拟服务器以进行许可。CPX 虚拟服务器必须获得许可才能在服务图中显示数据。要自动选择虚拟服务器:
  1. 导航到 设置 > NetScaler Console 许可与分析配置。
  2. 在 虚拟服务器许可证摘要 下,启用 自动选择虚拟服务器 和 自动选择不可寻址的虚拟服务器。
    自动选择虚拟服务器

启用 Web 事务和 TCP 事务设置

添加 Kubernetes 集群并启用自动选择虚拟服务器后,将 Web Transaction Settings 和 TCP Transactions Settings 更改为 All。
  1. 导航到 设置 > 分析设置。
    Settings 页面随即显示。
  2. 单击启用分析功能。
  3. 在Web 事务设置下,选择所有。
    Web 事务设置
  4. 在TCP 事务设置下,选择所有。
    TCP
  5. 单击确定。

将流量发送到微服务

接下来,您必须将流量发送到微服务,以在 NetScaler Console 中填充服务图。
  1. 运行 kubectl get svc -n sg-demo 以通过 NodePort 暴露 CPX。
    NodePort
  2. 编辑 etc/host 文件,并为 hotdrink.beverages.com 创建域 IP 条目
    您现在可以使用 https://hotdrink.beverages.com 访问微服务