Citrix应用交付管理服务

管理Kubernetes Ingress配置

Kubernetes (K8s)是一个开源的容器编排平台,它自动化了云原生应用程序的部署、伸缩和管理。

Kubernetes提供Ingress特性,允许集群外的客户端流量访问运行在Kubernetes集群内的应用程序的微服务。ADC实例可以充当运行在Kubernetes集群内的应用程序的入口。ADC实例可以负载平衡和内容路由从客户机到Kubernetes集群内的任何微服务的南北向通信。

请注意

  • Citrix应用程序交付和管理在Kubernetes版本1.14及以上的集群上支持Ingress特性。
  • Citrix应用程序交付和管理支持Citrix ADC VPX和MPX设备作为入口设备。
  • 在Kubernetes环境中,Citrix ADC实例负载只平衡“NodePort”服务类型。

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

您可以使用Kubernetes创建和部署Ingress配置kubectl或api。您还可以从Citrix应用程序交付和管理配置和部署Ingress。

您可以在Citrix应用程序交付和管理中指定Kubernetes集成的以下方面:

  • 集群—可以注册或注销Citrix Application Delivery and Management可以为其部署Ingress配置的Kubernetes集群。在Citrix Application Delivery and Management中注册集群时,需要指定Kubernetes API服务器信息。然后,选择一个可以到达Kubernetes集群并部署Ingress配置的Citrix应用程序交付和管理代理。

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

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

Citrix应用程序交付和管理使用入口策略自动将入口配置映射到ADC实例。

对于每个成功的Ingress配置,Citrix应用程序交付和管理生成一个StyleBook ConfigPack。ConfigPack表示应用到与入接口配置相对应的ADC实例的ADC配置。要查看ConfigPack,请导航到应用>配置>配置包

在你开始之前

要在Kubernetes集群上使用Citrix ADC实例作为Ingress设备,请确保您具备:

  • Kubernetes集群就位。

  • 安装和配置Citrix Application Delivery and Management代理,以支持Citrix Application Delivery and Management与Kubernetes集群或被管理实例之间的通信。您可以使用数据中心或云中的托管实例。

  • 在Citrix应用程序交付和管理中注册的Kubernetes集群。

配置Citrix应用程序交付和管理代理注册到Kubernetes集群

为了实现Kubernetes集群与Citrix Application Delivery and Management之间的通信,必须安装并配置Citrix Application Delivery and Management代理。agent可部署在以下平台:

  • Hypervisor (ESX、XenServer、KVM、Hyper-V)

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

遵循过程配置代理。

请注意

如果已经部署了现有的Citrix应用程序交付和管理代理,您还可以使用它。

使用秘密令牌配置Citrix应用程序交付和管理,以管理Kubernetes集群

为了使Citrix应用程序交付和管理能够从Kubernetes接收事件,您需要在Kubernetes中为Citrix应用程序交付和管理创建一个服务帐户。并且,在集群中为服务帐户配置必要的RBAC权限。

  1. 为Citrix应用程序交付和管理创建服务帐户。例如,服务帐户名称为citrixadm-sa.创建服务帐户,请参见使用多个业务帐户

  2. 使用集群管理员角色绑定Citrix应用程序交付和管理帐户。此绑定授予ClusterRole跨集群到服务帐户。使用实例绑定a集群管理员角色到服务帐户。

    ——clusterrole=cluster-admin——serviceaccount=default:citrixadm-sa 

    将Citrix应用程序交付和管理帐户绑定到集群管理员角色,该服务帐户具有整个集群的访问权限。有关更多信息,请参见kubectl创建clusterrolebinding

  3. 从已创建的业务帐户中获取token。

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

    Kubectl description sa citrixadm-sa 
  4. 执行以下命令获取token的秘密字符串:

    Kubectl描述secret  

在“Citrix应用程序交付和管理”中添加Kubernetes集群

配置Citrix Application Delivery and Management代理并配置静态路由后,还需要在Citrix Application Delivery and Management中注册Kubernetes集群。

注册Kubernetes集群。

  1. 使用管理员凭证登录到Citrix应用程序交付和管理。

  2. 导航到编制>Kubernetes>集群.进入“集群”页面。

  3. 点击添加

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

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

    2. API服务器URL-你可以从Kubernetes Master节点获取API Server的URL详细信息。

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

        API服务器URL

      2. 输入显示为的URL“Kubernetes师傅正在跑。”

    3. 身份验证令牌—指定登录时获取的认证令牌字符串配置Citrix Application Delivery and Management来管理Kubernetes集群.需要身份验证令牌来验证Kubernetes集群和Citrix Application Delivery and Management之间的通信访问。使用实例生成一个认证令牌。

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

        Kubectl描述secret  
      2. 复制生成的令牌并将其粘贴为身份验证令牌

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

    4. 从列表中选择代理。

    5. 点击创建

      添加集群

定义Ingress策略

Ingress策略决定使用哪个Citrix ADC来部署Ingress配置,基于Ingress集群或命名空间或两者。

  1. 导航到业务流程> Kubernetes >策略

  2. 点击添加创建一个策略。

    1. 指定策略名称。

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

    3. 在基础设施面板中,

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

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

      网站而且实例列表根据群集选择填充选项条件面板。

      这些列表显示与配置了Kubernetes集群的Citrix应用程序交付和管理代理相关联的站点或实例。

    4. 选择网络,选择Citrix Application Delivery and Management自动为Ingress配置分配虚拟IP地址的网络。

      中创建的网络设置> IPAM

    5. 点击创建

部署Ingress配置

您可以使用以下命令从Kubernetes部署Ingress配置kubectl、Kubernetes API或其他工具。您还可以直接从Citrix应用程序交付和管理部署Ingress配置。

  1. 导航到业务流程> Kubernetes > ingress

  2. 点击添加

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

    1. 指定入接口的名称。

    2. 集群,选择需要部署Ingress的Kubernetes集群。

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

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

    5. 选择进入协议从列表中。如果您选择HTTPS,指定TLS的秘密

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

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

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

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

      • Kubernetes服务—指定需要的服务。

      • 港口—指定业务端口。

      • LB方法—选择所选Kubernetes服务的负载均衡方式。

        所选方法用适当的注释更新入接口规范。例如,如果您选择设置轮流捡取方法,Citrix注释如下所示:

        此“lbmethod”:“循环”< !——NeedCopy >
      • 持久性类型—选择所选Kubernetes服务的负载均衡持久类型。

        所选持久性类型使用适当的注释更新入接口规范。例如,如果您选择COOKIEINSERT, Citrix注释如下所示:

        :“persistenceType COOKIEINSERT“< !——NeedCopy >

      点击添加向Ingress配置中添加更多URL路径和端口。

      添加内容路由规则

      部署完成后,Ingress配置根据以下原则将客户端流量重定向到特定的服务:

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

      请注意

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

    7. 可选的,指定一个入口的描述

    8. 点击部署

      如果您想在部署之前检查配置,请单击生成导入规范.指定的入口配置以YAML格式显示。检查配置后,单击部署

请注意向使用Ingress配置创建的虚拟服务器申请license。申请license的操作步骤如下:

  1. 系统>授权和分析
  2. 虚拟服务器许可证摘要,使自动选择虚拟服务器