Citrix Application Delivery Management 服务

管理 Citrix ADM 中的 Kubernetes 入口配置

Kubernetes (K8s) 是一个开源容器编排平台,可自动执行云原生应用程序的部署、扩展和管理。

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

注意

  • Citrix ADM 支持 Kubernetes 版本 1.14 及更高版本的群集上的入口功能。
  • Citrix ADM 支持 Citrix ADC VPX 和 MPX 装置作为入口设备。
  • 在 Kubernetes 环境中,Citrix ADC 实例仅平衡 “节点端口” 服务类型。

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

您可以使用 Kubernetes kubectl 或 API 创建和部署入口配置。您还可以配置和部署来自 Citrix ADM 的入口。

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

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

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

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

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

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

准备工作

要在 Kubernetes 群集上使用 Citrix ADC 实例作为入口设备,请确保具备以下功能:

  • 库贝内特斯集群到位。

  • 已安装并配置 Citrix ADM 代理以启用 ADM 和 Kubernetes 群集或托管实例之间的通信。您可以使用数据中心或云中存在的托管实例。

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

将 Citrix ADM 代理配置为在 Kubernetes 群集中注册

要启用 Kubernetes 群集与 Citrix ADM 之间的通信,必须安装并配置 Citrix ADM 代理。您可以在以下平台上部署代理:

  • 虚拟机管理程序(ESX、XenServer、KVM、Hyper-V)

  • 公有云服务(如微软 Azure、AWS)

按照 程序 配置代理。

注意

如果已部署现有 ADM 代理,您也可以使用现有 ADM 代理。

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

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

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

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

    kubectl create clusterrolebinding citrixadm-sa-admin --clusterrole=cluster-admin --serviceaccount=default:citrixadm-sa
    

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

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

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

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

    kubectl describe secret <token-name>
    

在 Citrix ADM 中添加 Kubernetes 群集

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

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

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

  2. 导航到调配 > Kubernetes > 群集。 此时将显示 “集群” 页面。

  3. 单击添加

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

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

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

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

        API 服务器 URL

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

    3. 身份验证令牌 -指定在您时获得的身份验证令牌字符串 将 Citrix ADM 配置为管理库伯内特群集。验证令牌需要验证 Kubernetes 群集与 Citrix ADM 之间的通信访问权限。要生成身份验证令牌,请执行以下操作:

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

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

        有关详细信息,请参阅 Kubernetes文档。

    4. 从列表中选择座席。

    5. 单击创建

      添加群集

定义入口策略

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

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

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

    1. 指定策略名称。

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

    3. 在 “基础结构” 小组中,

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

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

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

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

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

      此列表显示在 “网 络” > “IPAM” 中创建的网络。

    5. 单击创建

部署入口配置

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

  1. 导航到 “ 编排” > “库贝内特斯” > “入口”。

  2. 单击添加

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

    1. 指定入口的名称。

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

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

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

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

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

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

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

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

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

      • 端口 -指定服务端口。

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

        选定的方法使用适当的注释更新入口规范。例如,如果选择 ROUDROBIN 方法,则 Citrix 注释将如下所示:

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

        选定的持久性类型使用适当的注释更新入口规范。例如,如果选择 Cookie 插入,则 Citrix 注释将如下所示:

         "persistenceType":"COOKIEINSERT"
        

      单击 加” 以向入口配置添加更多 URL 路径和端口。

      添加内容路由规则

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

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

      注意:在入口配置中使用的

      Kubernetes 服务应为节点端口类型。

    7. 可选,请指定 入口说明

    8. 单击 “ 部署”。

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

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

  1. 转到 “系统” > “许可和分析”。
  2. 在 “ 虚拟服务器许可证摘要” 下,启用 自动选择虚拟服务器

管理 Citrix ADM 中的 Kubernetes 入口配置