管理 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 权限配置服务帐户。
为 Citrix ADM 创建服务帐户。例如,服务帐户名称可以是
citrixadm-sa
。要创建服务帐户,请参阅使用多个服务帐户。使用
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
createclusterrolebinding
](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#kubectl-create-clusterrolebinding)。从创建的服务帐户获取令牌。
例如,运行以下命令以查看
citrixadm-sa
服务帐户的令牌:kubectl describe sa citrixadm-sa
运行以下命令以获取令牌的私有字符串:
kubectl describe secret
在 Citrix ADM 中添加 Kubernetes 群集
配置 Citrix ADM 代理并配置静态路由后,必须在 Citrix ADM 中注册 Kubernetes 群集。
要注册 Kubernetes 群集,请执行以下操作:
使用管理员凭据登录到 Citrix ADM。
导航到调配>Kubernetes>群集。此 时将显示 “群集” 页面。
单击添加。
在添加群集页面中,指定以下参数:
名称-指定您选择的名称。
API 服务器 URL-您可以从 Kubernetes 主节点获取 API 服务器 URL 详细信息。
在 Kubernetes 主节点上,运行命令
kubectl cluster-info
。输入显示的Kubernetes 主服务器正在运行的 URL。
身份验证令牌-指定在您时获得的身份验证令牌字符串将 Citrix ADM 配置为管理库伯内特群集。验证令牌需要验证 Kubernetes 群集与 Citrix ADM 之间通信的访问权限。要生成身份验证令牌,请执行以下操作:
在 Kubernetes 主节点上,运行以下命令:
kubectl describe secret
复制生成的令牌并将其粘贴为身份验证令牌
有关详细信息,请参阅Kubernetes文档。
从列表中选择代理。
单击创建。
定义入口策略
入口策略根据 Ingress 集群或命名空间或两者来决定使用哪个 Citrix ADC 来部署入口配置。
导航到调配 > Kubernetes > 策略。
单击添加以创建策略。
指定策略名称。
定义条件以在 Kubernetes 群集上部署入口配置。这些条件通常基于入口群集和命名空间。
在 “基础设施” 面板中,
站点-从列表中选择站点。
实例-从列表中选择 ADC 实例。
站点和实例列表根据条件面板中的群集选择填充选项。
这些列表显示与使用 Kubernetes 群集配置的 Citrix ADM 代理关联的站点或实例。
在 “选择网络” 中,选择 ADM 将虚拟 IP 地址自动分配给入口配置的网络。
此列表显示在 “网络” > “IPAM” 中创建的网络。
单击创建。
部署入口配置
您可以使用 Kuberneteskubectl
、Kubernetes API 或其他工具部署入口配置。您还可以直接从 Citrix ADM 部署入口配置。
导航到“编排” > “库贝内特斯” > “入口”。
单击添加。
在创建入口字段中,指定以下详细信息:
指定入口的名称。
在群集中,选择要在其上部署入口的 Kubernetes 群集。
从列表中选择群集命名空间。此字段列出了指定 Kubernetes 群集中存在的命名空间。
可选,选择自动分配前端 IP 地址。
从列表中选择入口协议。如果选择HTTPS,请指定TLS 密码。
此密钥嵌入了嵌入 HTTPS 证书和私钥的 Kubernetes 密钥资源。
HTTPS 入口需要在 Kubernetes 群集上配置基于 TLS 的密码。指定
tls.crt
和tls.key
字段以分别包括服务器证书和证书密钥。对于内容路由,请指定以下详细信息:
URL 路径-指定与 Kubernetes 服务和端口关联的路径。
Kubernetes 服务-指定所需的服务。
端口-指定服务端口。
LB 方法-为所选 Kubernetes 服务选择首选的负载平衡方法。
选定的方法使用适当的注释更新入口规范。例如,如果选择ROUDROBIN方法,则 Citrix 注释将如下所示:
"lbmethod":"ROUNDROBIN"
持久性类型-为所选 Kubernetes 服务选择首选的负载平衡持久性类型。
选定的持久性类型使用适当的注释更新入口规范。例如,如果选择Cookie 插入,则 Citrix 注释将如下所示:
"persistenceType":"COOKIEINSERT"
单击添加” 以向入口配置添加更多 URL 路径和端口。
部署后,入口配置会根据以下内容将客户端流量重定向到特定服务:
- 请求的 URL 路径和端口。
- 定义的 LB 方法和持久性类型。
注意:在入口配置中使用的
Kubernetes 服务应为节点端口类型。
可选,请指定入口说明。
单击 “部署”。
如果要在部署之前查看配置,请单击生成入口规范。指定的入口配置以 YAML 格式显示。查看配置后,单击部署”。
注意将许可证应用于使用入口配置创建的虚拟服务器。要应用许可证,请执行以下步骤:
- 转到“系统” > “许可和分析”。
- 在 “虚拟服务器许可证摘要” 下,启用自动选择虚拟服务器。