Application Delivery Management

管理 NetScaler ADM 中的库伯内特斯入口配置

Kubernetes (K8s) 是一个开源容器调配平台,可自动部署、扩展和管理云原生应用。

Kubernetes 提供了 Ingress 功能,该功能允许群集外部的客户端流量访问在 Kubernetes 群集中运行的应用程序的微服务。ADC 实例可以充当 Kubernetes 群集中运行的应用程序的入口。ADC 实例可以负载平衡,并将南北向流量从客户端路由到 Kubernetes 群集内的任何微服务。

注意

  • NetScaler ADM 在具有 Kubernetes 版本 1.14—1.21 的群集上支持 Ingress 功能。
  • NetScaler ADM 支持 NetScaler VPX 和 MPX 装置作为入口设备。
  • 在 Kubernetes 环境中,NetScaler 实例仅对“NodePort”服务类型进行负载平衡。

您可以将多个 ADC 实例配置为充当同一群集或不同群集或命名空间上的入口设备。配置实例后,您可以根据 Ingress 策略将每个实例分配给不同的应用程序。

您可以使用 Kubernetes kubectl 或 API 创建和部署 Ingress 配置。您还可以从 NetScaler ADM 配置和部署入口。

您可以在 ADM 中指定 Kubernetes 集成的以下几个方面:

  • 群集 — 您可以注册或取消注册 ADM 可以为其部署 Ingress 配置的 Kubernetes 群集。在 NetScaler ADM 中注册群集时,请指定 Kubernetes API 服务器信息。然后,选择一个可以访问 Kubernetes 群集的 ADM 代理并部署 Ingress 配置。

  • 策略 — 入口策略用于根据群集或命名空间选择 ADC 实例以部署 Ingress 配置。在添加策略时指定群集、站点和实例信息。

  • 入口配置 — 此配置是 Kubernetes 入口配置,其中包括内容切换规则和微服务及其端口的相应 URL 路径。还可以使用 Kubernetes 密钥资源指定 SSL/TLS 证书(用于卸载 ADC 实例上的 SSL 处理)。

NetScaler ADM 使用入口策略自动将入口配置映射到 ADC 实例。

对于每个成功的 Ingress 配置,NetScaler ADM 都会生成一个样书 ConfigPack。ConfigPack 表示应用于 ADC 实例的 ADC 配置,该 ADC 配置与入口配置相对应。要查看 ConfigPack,请导航到“应用程序”>“样书”>“配置”。

开始之前的准备工作

要在 Kubernetes 群集上将 NetScaler 实例用作 Ingress 设备,请确保您具备以下条件:

  • 库贝内特斯群集到位。

  • 在 NetScaler ADM 中注册的库贝内特斯群集。

使用秘密令牌配置 NetScaler ADM 以管理 Kubernetes 群集

为了使 NetScaler ADM 能够接收来自 Kubernetes 的事件,您需要在库贝内特斯中为 NetScaler ADM 创建一个服务帐户。此外,使用群集中必要的 RBAC 权限配置服务帐户。

  1. 为 NetScaler ADM 创建服务帐户。例如,服务帐户名称可以是citrixadm-sa。要创建服务帐户,请参阅 使用多个服务帐户

  2. 使用cluster-admin 角色绑定 NetScaler ADM 服务帐户。此绑定将 ClusterRole 整个群集中的授予服务帐户。以下是将 cluster-admin 角色绑定到服务帐户的示例命令。

    kubectl create clusterrolebinding citrixadm-sa-admin --clusterrole=cluster-admin --serviceaccount=default:citrixadm-sa
    <!--NeedCopy-->
    

    将 NetScaler ADM 服务帐户绑定到 cluster-admin 角色后,服务帐户具有群集范围的访问权限。有关更多信息,请参阅 kubectl 创建 clusterrolebinding

  3. 从创建的服务帐户获取令牌。

    例如,运行以下命令查看 citrixadm-sa 服务帐户的令牌:

    kubectl describe sa citrixadm-sa
    <!--NeedCopy-->
    
  4. 运行以下命令获取令牌的密钥字符串:

    kubectl describe secret <token-name>
    <!--NeedCopy-->
    

在 NetScaler ADM 中添加 Kubernetes 群集

配置 NetScaler ADM 代理并配置静态路由后,必须在 NetScaler ADM 中注册 Kubernetes 群集。

要注册 Kubernetes 群集,请执行以下操作:

  1. 使用管理员凭据登录到 NetScaler ADM。

  2. 导航到调配 > Kubernetes > 群集。 屏幕上将显示“群集”页面。

  3. 单击添加

  4. 在“添加群集”页中,指定以下参数:

    1. 名称 -指定您选择的名称。

    2. API 服务器 URL -您可以从 Kubernetes 主节点获取 API 服务器 URL 详细信息。

      1. 在 Kubernetes 主节点上,运行命令 kubectl cluster-info

        API 服务器 URL

      2. 输入显示的 Kubernetes 主服务器正在运行的 URL。

    3. 身份验证令牌 -指定在 配置 NetScaler ADM 以管理 Kubernetes 群集时获得的身份验证令牌字符串。验证 Kubernetes 群集和 NetScaler ADM 之间的通信访问需要使用身份验证令牌。要生成身份验证令牌,请执行以下操作:

      1. 在 Kubernetes 主节点上,运行以下命令:

        kubectl describe secret <token-name>
        <!--NeedCopy-->
        
      2. 复制生成的令牌并将其粘贴为身份验证令牌

        有关更多信息,请参阅 Kubernetes 文档。

    4. 从列表中选择座席。

    5. 单击创建

      添加群集

定义入口策略

入口策略根据入口群集或命名空间来决定使用哪个 NetScaler 来部署入口配置。

  1. 导航到调配 > Kubernetes > 策略

  2. 单击添加以创建策略。

    1. 指定策略名称。

    2. 定义 条件 以在 Kubernetes 群集上部署 Ingress 配置。这些条件通常基于 Ingress 群集和命名空间。

    3. 在“基础架构”面板中,

      • 站点 -从列表中选择一个站点。

      • 实例 -从列表中选择 ADC 实例。

      站点”和“实例”列表根据 条件 面板中的群集选择填充选项。

      这些列表显示了与使用 Kubernetes 群集配置的 NetScaler ADM 代理关联的站点或实例。

    4. 在“选择网络”中,选择 ADM 将虚拟 IP 地址自动分配给入口配置的网络。

      此列表显示了在 基础架构 > IPAM中创建的网络。

    5. 单击创建

部署入口配置

您可以使用 kubectlKubernetes API 或其他工具从 Kubernetes 部署入口配置。您还可以直接从 NetScaler ADM 部署 Ingress 配置。

  1. 导航到 调配 > Kubernetes > 入口

  2. 单击添加

  3. 在“创建入口”字段中,指定以下详细信息:

    1. 指定入口的名称。

    2. 群集中,选择要在其上部署 Ingress 的 Kubernetes 群集。

    3. 从列表中选择 群集命名空间 。此字段列出了指定 Kubernetes 群集中存在的命名空间。

    4. 可选,选择 自动分配前端 IP 地址

    5. 从列表中选择 入口协议 。如果选择 HTTPS,请指定 TLS 密钥

      这个密钥嵌入了嵌入 HTTPS 证书和私钥的 Kubernetes 密钥资源。

      HTTPS 入口需要在 Kubernetes 群集上配置一个基于 TLS 的密钥。指定 tls.crttls.key 字段以分别包含服务器证书和证书密钥。

    6. 对于内容路由,请指定以下详细信息:

      • URL 路径 -指定与 Kubernetes 服务和端口关联的路径。

      • Kubernetes 服务 -指定所需的服务。

      • 端口 -指定服务端口。

      • 负载平衡方法 - 为选定的 Kubernetes 服务选择首选的负载平衡方法。

        选定的方法会使用相应的注释来更新 Ingress 规范。例如,如果选择 ROUNDROBIN 方法,Citrix 注释将显示如下:

         "lbmethod":"ROUNDROBIN"
         <!--NeedCopy-->
        
      • 持久性类型 -选择所选 Kubernetes 服务的首选负载平衡持久性类型。

        选定的持久性类型会使用相应的注解来更新 Ingress 规范。例如,如果选择 COOKIEINSERT,Citrix 注释将显示如下:

         "persistenceType":"COOKIEINSERT"
         <!--NeedCopy-->
        

      单击“添加”将更多 URL 路径和端口添加到 Ingress 配置中。

      添加内容路由规则

      部署后,Ingress 配置会根据以下内容将客户端流量重定向到特定服务:

      • 请求的 URL 路径和端口。
      • 定义的 LB 方法和持久性类型。

      注意

      入口配置中使用的 Kubernetes 服务应该是 NodePort 类型。

    7. 可选,指定 入口描述

    8. 单击部署

      如果要在部署前查看配置,请单击 生成 Ingress 规范。指定的 Ingress 配置将以 YAML 格式显示。查看配置后,单击 部署

注意: 将许可证应用于使用 Ingress 配置创建的虚拟服务器。要应用许可证,请执行以下步骤:

  1. 前往“设置”>“许可和分析配置”
  2. 在“虚拟服务器许可证摘要”下,启用 自动选择虚拟服务器
管理 NetScaler ADM 中的库伯内特斯入口配置