Citrix Application Delivery Management 服务

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

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

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

注意

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

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

您可以使用 Kuberneteskubectl或 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 配置。要查看 ConfigPack,请导航到 “应用程序” > “样书” > “配置”。

准备工作

要在 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角色后,服务帐户具有群集范围的访问权限。有关更多信息,请参阅 [kubectlcreateclusterrolebinding](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#kubectl-create-clusterrolebinding)。

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

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

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

    kubectl describe secret  

在 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  
      2. 复制生成的令牌并将其粘贴为身份验证令牌

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

    4. 从列表中选择代理。

    5. 单击创建

      添加群集

定义入口策略

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

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

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

    1. 指定策略名称。

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

    3. 在 “基础设施” 面板中,

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

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

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

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

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

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

    5. 单击创建

部署入口配置

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

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

  2. 单击添加

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

    1. 指定入口的名称。

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

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

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

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

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

      HTTPS 入口需要在 Kubernetes 群集上配置基于 TLS 的密码。指定tls.crttls.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 中的库伯内特斯入口配置