管理 Citrix ADM 中的 Kubernetes 入口配置

Kubernetes (K8s) 是一个开源容器编排引擎,您可以在其中自动执行容器化应用程序的部署、扩展和管理。

Kubernetes 使用入口功能,客户端流量通过该功能访问应用程序的微服务。Citrix ADC 实例可充当 Kubernetes 群集内运行的应用程序的入口。Citrix ADC 实例将成为负载平衡器和代理从客户端到 Kubernetes 群集内微服务的(南北)流量。和实例,当微服务在 Kubernetes 环境中发生变化时,更新它们的终端节点。

注意

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

您可以将多个 ADC 实例配置为充当入口,并根据入口策略将每个 ADC 分配给不同的应用程序。指定以下内容以部署入口配置:

  • 群集 — 要将入口配置部署到的 Kubernetes 群集。在 Citrix ADM 中添加群集时,请指定 Kubernetes API 服务器信息。然后,选择要从中管理入口配置的代理。

  • 策略 — 策略决定要部署入口配置的 ADC 实例、群集和命名空间。指定要添加策略的群集、站点和实例信息。

  • 入口配置 — 此配置包括微服务及其端口的内容交换规则以及相应的 URL 路径。您还可以使用 Kubernetes 密钥指定 SSL/TLS 证书来卸载 ADC 实例上的 HTTPS 流量。

Citrix ADM 会自动映射入口配置和 ADC 实例。Citrix ADM 根据指定的入口策略选择 ADC 实例并承载入口配置。

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

准备工作

要在 Kubernetes 群集上协调 Citrix ADC 实例,请确保您具有:

  • Kubernetes 群集。

  • 安装并配置了 Citrix ADM 代理,以便在数据中心或云中启用 Citrix ADM 与 Kubernetes 群集或托管实例之间的通信。

  • 在 Citrix ADM 中添加了 Kubernetes 群集。

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

要启用 Kubernetes 群集与 Citrix ADM 之间的通信,必须安装和配置 Citrix ADM 代理。您可以使用以下命令配置代理:

  • 虚拟机管理程序

  • 公有云服务(例如 Microsoft Azure、AWS)

  • Citrix ADC 实例上可用的内置代理(非常适合 HA 部署)。

按照程序配置代理。

注意

您也可以使用现有代理。

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

Kubernetes 适配器是为了管理 Kubernetes 群集的入口配置而构建的。此适配器需要群集范围内访问 Kubernetes API。为此,请为 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. 身份验证令牌 -指定身份验证令牌。验证令牌需要验证 Kubernetes 群集与 Citrix ADM 之间通信的访问权限。要生成身份验证令牌,请执行以下操作:

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

        kubectl get secrets | grep ^default

        kubectl describe secret <SECRET_NAME>

        注意

        您还可以为 Kubernetes 群集创建 RBAC 角色和服务帐户 YAML,并为管理员用户创建身份验证令牌。

      2. 复制生成的令牌。

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

    4. 从列表中选择代理。

    5. 单击创建

      添加群集

      启用自动选择虚拟服务器进行授权后,您可以部署入口配置。

定义入口策略

入口策略决定要部署入口配置的 Kubernetes 群集和 VPX 实例。定义入口策略中的条件,并指定执行策略的基础结构详细信息。

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

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

    1. 指定策略名称。

    2. 定义 条件 以在 Kubernetes 群集上部署入口配置。

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

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

      • 实例 -从列表中选择一个实例。

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

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

    4. 单击创建

部署入口配置

指定部署入口配置所需的详细信息。

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

  2. 单击添加

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

    1. 指定入口的名称。

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

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

    4. 前端 IP 地址 字段中,指定入口设备的虚拟 IP 地址。

    5. 如果要管理 Kubernetes 群集上的 HTTPS 流量:

      1. 启用 TLS 字段中选择

      2. TLS 机密 字段中,从列表中选择机密信息。

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

    6. 指定 URL 路径及其 Kubernetes 服务和端口。单击 加” 以向入口配置添加更多 URL 路径和端口。

      部署后,Ingress 配置会在请求定义的 URL 路径时将客户端流量重定向到特定服务。

    7. 可选,请指定 入口说明 ,然后单击 部署

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