先进的概念

Citrix ADC CPX、Citrix入口控制器和谷歌Cloud上的应用程序交付管理

Citrix对GCP K8架构和组件的产品概述

GCP的五个主要Citrix组件

  1. Citrix ADC VPX作为基于入口的互联网客户端流量的第1层ADC。

    GCP中的VPX实例使您能够利用GCP计算功能,并为您的业务需求使用Citrix负载平衡和流量管理特性。您可以在GCP中将VPX作为一个独立实例部署。支持单网卡配置和多网卡配置。

  2. Kubernetes集群使用谷歌Kubernetes Engine (GKE)搭建容器平台。

    Kubernetes Engine是一个可用于部署集装箱应用程序的受管理的、可用于生产的环境。它支持应用程序和服务的快速部署和管理。

  3. 使用YAML文件库部署一个示例Citrix web应用程序。

    Citrix提供了一个示例微服务web应用程序来测试GCP上的两层应用程序拓扑结构。我们还在示例文件中包含了以下组件以进行概念验证:

    • Kubernetes YAML文件中的热饮料Web服务示例
    • Kubernetes YAML文件中的冷饮Web服务示例
    • Kubernetes YAML文件中的留言簿Web服务示例
    • 在Kubernetes YAML文件中的Grafana制图服务样本
    • Kubernetes YAML文件中的Prometheus日志服务示例

    GCP

  4. 将一级Citrix ADC自动化的Citrix入口控制器部署到GKE集群中。

    围绕Kubernetes构建的Citrix入口控制器根据入口资源配置自动配置一个或多个Citrix ADC。入口控制器是一种控制器,它监视Kubernetes API服务器对入口资源的更新,并相应地重新配置入口负载均衡器。Citrix入口控制器可以直接使用YAML文件部署,也可以通过Helm Charts部署。

    GCP

    Citrix为第1层VPX实例的Citrix入口控制器自动化提供了样例YAML文件。这些文件自动化了一级VPX上的几个配置,包括:

    • 重写策略和操作
    • 响应器策略和操作
    • 切换URL规则
    • 添加/移除CPX负载均衡服务

    用于GCP的Citrix入口控制器YAML文件位于这里:https://github.com/citrix/example-cpx-vpx-for-kubernetes-2-tier-microservices/tree/master/gcp

GCP上的两层入接口部署

双层入接口部署时,将Citrix ADC VPX/MPX部署在Kubernetes集群(Tier 1)外部,将Citrix ADC cpx部署在Kubernetes集群(Tier 2)内部。

一级VPX/MPX将在Kubernetes集群内平衡二级CPX的负载。这是一种被广泛采用的通用部署模型,不考虑平台,无论是谷歌Cloud、Amazon Web Services、Azure还是本地部署。

1层VPX/MPX的自动化

一级VPX/MPX自动对二级cpx进行负载均衡。Citrix入口控制器通过作为Kubernetes集群中的一个pod运行来完成自动化配置。它为一级VPX/MPX配置一个单独的入口类,这样配置就不会与其他入口资源重叠。

GCP


Citrix部署概述

在GCP上安装和配置第1层Citrix ADC

您可以使用以下方式之一部署Citrix ADC:

现在您需要使用3-NIC GDM模板部署Citrix VPX(一级adc)。

先决条件(强制性):

  1. 仅使用您的Citrix邮件id创建GCP帐户http://console.cloud.google.com

  2. 在GCP控制台创建cnn-selab-atl作为项目名称:GCP

  3. 安装gcloud设备上的实用程序。点击链接找到实用工具:https://cloud.google.com/sdk/install

  4. 使用gcloud API验证您的谷歌帐户gcloud身份验证登录

  5. 在客户端安装kubectl:https://kubernetes.io/docs/tasks/tools/install-kubectl/

  6. 运行以下命令gcloud实用程序来创建映像。

    gcloud计算镜像创建netscaler12-1——source-uri=gs:// time -cpx-storage/NSVPX-GCP-12.1-50.28_nc.tar.gz——guest-os-features=MULTI_IP_SUBNET 

    创建映像可能需要一些时间。创建图像后,它出现在Compute >计算引擎在GCP控制台。

在GCP上部署一个Citrix VPX(一级adc)

  1. GCP VPC实例:为了安全目的,解决外部、内部和DMZ网络的分离问题。需要创建3个网卡,如下表所示:

    网络 评论
    192.168.10.0/24 管理网络(vpx-snet-mgmt)
    172.16.10.0/24 客户端网络(vpx-snet-vip)
    10.10.10.0/24 服务器网络(vpx-snet-snip)

    注意:

    在部署任何VM实例之前,先构建三臂网络vpc。

    VPC可以通过SDK、gcloud接口和谷歌云平台控制台两种方式创建通过gcloud API创建VPC

    创建VPC用于管理流量或NSIP流量

    Gcloud compute——project=cnn-selab-atl networks create vpx-snet-mgmt——subnet-mode=custom Gcloud compute——project=cnn-selab-atl networks subnet create vpx-snet-mgmt——network=vpx-snet-mgmt——region=us-east1——range=192.168.10.0/24 

    创建VPC供客户端或VIP流量使用

    Gcloud compute——project=cnn-selab-atl networks create vpx-snet-vip——subnet-mode=custom Gcloud compute——project=cnn-selab-atl networks subnet create vpx-snet-vip——network=vpx-snet-vip——region=us-east1——range=172.16.10.0/24 

    创建“服务器流量”或“SNIP流量”VPC,用于托管kubernetes集群

    Gcloud compute——project=cnn-selab-atl networks create vpx-snet-snip——subnet-mode=custom Gcloud compute——project=cnn-selab-atl networks subnets create vpx-snet-snip——network=vpx-snet-snip——region=us-east1——range=10.10.10.0/24 

    VPC通过GCP GUI控制台从谷歌控制台选择组网> VPC网络>创建VPC网络然后输入所需的字段,如下所示。然后单击创建

    GCP

    客户端和服务器端网卡分别创建VPC网络,创建三个子网。

    注意:

    3个VPC网络应该在同一个区域,本场景中为us-east1。

    GCP

  2. 在下面创建三个网络和三个子网后VPC网络,使用GDM模板部署Citrix ADC VPX实例。确保configuration.yml而且template.py在相同的文件夹或目录中。从谷歌SDK中使用以下命令部署实例。

    Gcloud部署管理器部署创建tier1-vpx——config配置。yml < !——NeedCopy >
  3. 部署成功后,转到计算引擎检查citrix-adc-tier1-vpx,验证内部ip。

GCP

Citrix入口控制器可以实现一级VPX静态路由配置的自动化。配置SNIP地址,需要与Kubernetes集群的子网/虚拟私有云属于同一子网。

注意:

部署的一级VPX/MPX将对Kubernetes集群内的cpx进行负载均衡。在一级VPX中配置SNIP。

在一级VPX上的PuTTY会话中,执行以下命令添加SNIP并启用管理访问SNIP:

清除config -force full add ns IP 10.10.10.20 255.255.255.0 -type snip -mgmt enabled enable ns mode MBF 

使用GKE方式部署Kubernetes集群

可以通过以下两种方式部署Kubernetes集群谷歌云SDK或通过谷歌云平台GUI控制台

Gcloud API创建k8s集群命令

Gcloud beta容器——项目“cnn-selab-atl”集群创建“k8s-cluster-with-cpx”——zone“us-east1-b”——用户名“admin”——cluster-version“1.11.7-gke”。12"——machine-type "n1-standard-1"——image-type "COS"——disk-type "pd-standard"——disk-size "100"——scope "https://www.googleapis.com/auth/devstorage.read_only","https://www.googleapis.com/auth/logging.write","https://www.googleapis.com/auth/monitoring","https://www.googleapis.com/auth/servicecontrol","https://www.googleapis.com/auth/service.management.readonly","https://www.googleapis.com/auth/trace.append"——num-nodes "3"——enable-cloud-logging——enable-cloud-monitoring——no-enable-ip-alias .——network "projects/cnn-selab-atl/global/networks/vpx-snet-snip"——subnetwork "projects/cnn-selab-atl/regions/us-east1/subnetworks/vpx-snet-snip"——addons HorizontalPodAutoscaling,HttpLoadBalancing——enable- autopgrade——enable-autorepair 

云平台GUI控制台步骤

  1. 在GCP控制台中搜索Kubernetes引擎并单击创建集群

    GCP

  2. 在您的VPX SNIP所在子网(VPX -snet- SNIP)中创建一个集群。该集群自动将配置从K8s集群中的Citrix入口控制器推送到第1层ADC。

    GCP

    GCP

  3. 点击高级选项修改子网为vpx-snet-snip并选择以下字段。

    GCP

  4. 要从云SDK访问此集群,请单击Kubernetes连接到集群按钮,并将命令粘贴到云SDK中。

    GCP

  5. 运行以下命令验证GKE Cluster的部署:

Kubectl获取节点

GCP


使用样例YAML文件库部署样例应用程序

Citrix ADC提供两层架构部署解决方案,以负载平衡部署在微服务中并通过Internet访问的企业级应用程序。Tier 1配置VPX/SDX/MPX等重型负载均衡器,实现南北流量的负载均衡。第2层有CPX部署,用于管理微服务和负载平衡东西流量。

  1. 如果您在GKE中运行您的集群,那么请确保您使用了集群角色绑定来配置cluster-admin。您可以使用以下命令来实现这一点。

    Kubectl创建clusterrolebinding citrix-cluster-admin——clusterrole=cluster-admin——user=<您谷歌帐户>的email-id。<!——NeedCopy >
  2. 访问部署YAML文件所在的当前目录。执行以下命令获取节点状态。

    Kubectl获取节点

    GCP

  3. 创建名称空间:

    Kubectl创建-f namespace。yaml < !——NeedCopy >

    验证namespace命令:

    Kubectl获得名称空间

    GCP

  4. 部署rbac。默认名称空间中的Yaml。

    Kubectl创建-f rbac。yaml < !——NeedCopy >
  5. 使用以下命令为热饮、冷饮和留言簿微服务部署CPX。

    Kubectl创建-f cpx。yaml - n tier-2-adckubectl create -f hotdrink-secret.yaml -n tier-2-adc 
  6. 部署三种热饮饮料微服务—带发夹架构的SSL类型微服务。

    Kubectl创建-f team_hotdrink。Yaml -n team-hotdrink kubectl create -f hotdrink-secret。Yaml -n team-hotdrink 
  7. 部署冷饮饮料微服务—SSL_TCP类型的微服务。

    Kubectl创建-f team_colddrink。Yaml -n team-colddrink kubectl create -f colddrink-secret。Yaml -n team-cold - drink 
  8. 部署guestbook—NoSQL类型的微服务。

    Kubectl创建-f team_guestbook。Yaml -n team-guestbook 
  9. 验证为以上三个应用程序部署的CPX。首先,获取部署为第2层adc的CPX pods,然后获得对CPX的CLI访问。

    要在二级adc命名空间中获取CPX pods,输入:kubectl get pods -n二级adc

    要获得对CPX pod (hotbeverages - CPX pod)的CLI访问(bash),输入:“从上面的步骤复制和粘贴热饮料CPX pod名称”bash -n tier-2-adc

    例如,

    Kubectl exec - cpx- ingpress -hotdrinks-768b674f76-pcnw4 bash -n tier-2-adc

    查看hotdrink-cpx中是否运行CS vserver,在root用户访问CPX后输入如下命令:cli-script“sh华禾投资”

    例如,

    root@cpx-ingress-hotdrinks-768b674f76-pcnw4:/# cli_script.sh "sh csvs"

  10. 将VPX入口和入口控制器部署到第二层命名空间,该命名空间自动配置VPX。Citrix输入控制器(CIC)自动化一级adc (VPX)。

    Kubectl创建-f ingress_vpx。yaml - n tier-2-adckubectl create -f cic_vpx.yaml -n tier-2-adc
  11. 在本地机器的主机文件中添加DNS条目,以便通过Internet访问微服务。

    对于Windows客户端,转到:C:\Windows\System32\drivers\etc\hosts

    对于macOS客户端,在终端中输入:sudo / etc / hosts nano”

    在主机文件中添加以下条目并保存文件。

    (static-external-traffic-ip-tier1-vpx) guestbook.beverages.com xxx.xxx.xxx.xxx (static-external-traffic-ip-tier1-vpx) grafana.beverages.com xxx.xxx.xxx.xxx (static-external-traffic-ip-tier1-vpx)
  12. 现在您可以通过Internet访问每个应用程序。例如,https://hotdrink.beverages.com

    GCP


为示例应用程序启用Rewrite和Responder策略

现在是时候通过自定义资源定义(CRD)在VPX上推动Rewrite和Responder策略了。

  1. 部署CRD将Rewrite和Responder策略推入默认命名空间中的一级adc。

Kubectl创建-f crd_rewrite_responder.yaml
  1. 黑名单的url在上配置Responder策略hotdrink.beverages.com阻止对咖啡页面的访问。

Kubectl创建-f responderpolicy_hotdrink。yaml - n tier-2-adc

部署Responder策略后,访问coffee页面hotdrink.beverages.com.然后您会收到以下消息。

GCP

  1. 头插入配置“重写”策略colddrink.beverages.com在消息头中插入会话ID。

Kubectl创建-f rewritepolicy_colddrink。yaml - n tier-2-adc

部署Rewrite策略后,访问colddrink.beverages.com在浏览器上启用开发人员模式。在Chrome浏览器下,按F12,保留network category下的日志,查看会话ID,会话ID是由VPX (tier-1-adc)的Rewrite策略插入的。

GCP


开源工具集

  1. 部署云本地计算基础(CNCF)监视工具,例如Prometheus和Grafana来收集ADC代理统计信息。

    Kubectl创建-f监视。yaml - n监测kubectl create -f ingress_vpx_monitoring.yaml -n monitoring

普罗米修斯日志聚合器

  1. 登录到http://grafana.beverages.com并完成以下一次性设置。

    1. 使用管理员凭证登录到门户。
    2. 点击添加数据来源并选择普罗米修斯数据源。
    3. 配置以下设置并单击保存并测试按钮。

    GCP

Grafana视觉指示板

  1. 从左侧面板中选择进口选项,并上载grafana_config.jsonyamlFiles文件夹中。现在你可以看到Grafana仪表板上列出的基本ADC数据。

GCP


删除一个部署

  1. 如果需要删除Citrix VPX(一级adc)部署,请进入谷歌SDK CLI控制台删除实例:

    Gcloud部署管理器删除tier1-vpx
  2. 删除GKE Kubernetes集群:进入GCP控制台,选择“Kubernetes集群”,单击删除删除集群。

    GCP ' ' '