设置双层或服务网状精简版拓扑的详细步骤
部署双层或服务网格精简拓扑的先决条件可在 设置服务图中找到。
配置 NetScaler 代理
要启用 Kubernetes 群集和 NetScaler 控制台之间的通信,必须安装和配置代理。您可以使用 NetScaler 实例上提供的虚拟机管理程序、公共云服务(例如 Microsoft Azure、AWS)或 NetScaler 实例上提供的内置代理(非常适合 HA 部署)配置代理。
按照 步骤 配置代理。
注意
您也可以使用现有代理。
默认情况下,这些代理会自动升级到 NetScaler 控制台的最新版本。您可以在 基础结构 > 实例 > 代理页面上查看代理 详细信息。您还可以指定希望代理升级的时间。有关更多信息,请参阅 配置代理升级设置。
在代理中配置静态路由
在 Kubernetes 群集中,所有容器化的容器舱都使用覆盖网络。无法直接使用这些私有 IP 地址建立通信。要启用从 NetScaler 控制台到 Kubernetes 群集的通信,必须在代理中配置静态路由。
请考虑您的 Kubernetes 群集具有以下 IP 地址:
-
Kubernetes master – 101.xx.xx.112
-
Kubernetes worker 1 – 101.xx.xx.111
-
Kubernetes worker 2 – 101.xx.xx.110
在 Kubernetes master 上,运行以下命令来标识要进行静态路由的 pod 网络:
kubectl get nodes -o jsonpath="{range .items[*]}{'podNetwork: '}{.spec.podCIDR}{'\t'}{'gateway: '}{.status.addresses[0].address}{'\n'}{end}"
以下是运行命令后的示例输出:
成功配置代理后:
-
使用 SSH 客户端,登录到代理
-
键入
shell
并按 Enter 键切换到bash
-
使用命令配置静态路由
route add -net <public IP address range> <Kubernetes IP address>
例如:
route add -net 192.168.0.0/24 101.xx.xx.112
route add -net 192.168.1.0/24 101.xx.xx.111
route add -net 192.168.2.0/24 101.xx.xx.110
-
使用
netstat -rn
验证配置 -
将这些路由命令附加到
/mpsconfig/svm.conf
文件中。-
在 NetScaler 代理中,使用以下命令访问 svm.conf 文件:
vim /mpsconfig/svm.conf
-
在 svm.conf 文件中添加静态路由。
例如,
route add -net 192.168.0.0/24 101.xx.xx.112
。
-
从 GitHub 下载示例部署文件
-
使用 git clone
https://github.com/citrix/citrix-k8s-ingress-controller.git
命令克隆主节点中的 git Hub 存储库。 -
要访问 YAML,请执行以下操作:
cd citrix-k8s-ingress-controller/example/servicegraph-demo/
在 CPX YAML 文件中添加参数
注意
如果您使用的是 CPX 58.x 或更高版本,则在注册代理时必须使用非 nsroot 密码。为确保安全,NetScaler 代理 61.x 或更高版本需要强制更改密码。如果您的 NetScaler 代理升级到 61.x 或最新版本,则必须确保 使用 CPX 58.x 或更高版本。
必须在 文件中包含以下参数,以确保在 cpx.yaml
NetScaler 控制台中注册 CPX:
- name: "NS_MGMT_SERVER"
value: "xx.xx.xx.xx"
- name: "NS_MGMT_FINGER_PRINT"
value: "xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
- name: "NS_HTTP_PORT"
value: "9080"
- name: "NS_HTTPS_PORT"
value: 9443"
- name: "NS_MGMT_USER"
value: "nsroot"
- name: "NS_MGMT_PASS"
value: <your password>
- name: "LOGSTREAM_COLLECTOR_IP"
value: "xx.xx.xx.xx"
<!--NeedCopy-->
-
NS_MGMT_SERVER— 表示代理 IP 地址
-
NS_MGMT_FINGER_PRINT— 表示代理中 CPX 的身份验证。要获取指纹,请执行以下操作:
-
在 NetScaler 控制台中,导航 到基础架构> 实例 > 代理
-
选择代理,然后单击“查看指纹”
-
-
NS_HTTP_PORT — 表示用于通信的 HTTP 端口
-
NS_HTTPS_PORT — 表示用于通信的 HTTPS 端口
-
NS_MGMT_USER -表示用户名
-
NS_MGMT_PASS -表示密码。指定您选择的密码
-
LOGSTREAM_COLLECTOR_IP— 表示代理 IP 地址,必须在该地址中启用 Logstream 协议才能将日志数据从 CPX 传输到 NetScaler 控制台
在 NetScaler 控制台中添加 VPX 或 SDX 或 MPX 或 BLX 实例
要在服务图中获取第 1 级 NetScaler 实例分析,必须在 NetScaler 控制台中添加 VPX/SDX/MPX/BLX 实例并启用 Web Insight。必须启用 Web Insight for NetScaler 控制台才能显示来自 VPX/SDX/MPX/BLX 实例的 Web 交易详情。
-
导航到 基础结构 > 实例 > NetScaler
-
单击 添加 选项以添加实例。有关更多信息,请参见 在 NetScaler 控制台中添加实例
-
添加实例后,选择虚拟服务器并启用 Web Insight。有关详细信息,请参阅 管理许可并在虚拟服务器上启用分析
在 NetScaler 控制台中添加 Kubernetes 群集
要添加库伯内特斯群集,请执行以下操作:
-
使用管理员凭据登录 NetScaler 控制台。
-
导航到 基础结构 > 调配 > Kubernetes > 群集。 屏幕上将显示“群集”页面。
-
单击添加。
-
在“添加群集”页中,指定以下参数:
-
名称 -指定您选择的名称。
-
API 服务器 URL -您可以从 Kubernetes 主节点获取 API 服务器 URL 的详细信息。
-
在 Kubernetes 主节点上,运行命令
kubectl cluster-info
。 -
输入为 Kubernetes 主服务器的运行地址显示的 URL。
-
-
身份验证令牌 -指定身份验证令牌。验证令牌是验证 Kubernetes 群集和 NetScaler 控制台之间通信的访问权限所必需的。要生成身份验证令牌,请执行以下操作:
在库贝内特斯主节点上:
-
使用以下 YAML 创建服务帐户:
apiVersion: v1 kind: ServiceAccount metadata: name: <name> namespace: <namespace> <!--NeedCopy-->
-
运行
kubectl create -f <yaml file>
。服务帐户即被创建。
-
运行
kubectl create clusterrolebinding <name> --clusterrole=cluster-admin --serviceaccount=<namespace>:<name>
以将群集角色绑定到服务帐户。服务帐户现在拥有群集范围的访问权限。
令牌是在创建服务帐户时自动生成的。
-
运行
kubectl describe sa <name>
以查看令牌。 -
要获取密钥字符串,请运行
kubectl describe secret <token-name>
。
-
-
从列表中选择座席。
注意
确保选择与 CPX YAML 中添加的代理相同。
-
单击创建。
-
部署示例微服务应用程序
在主节点上:
-
运行
kubectl create -f namespace.yaml
以创建命名空间。 -
使用以下命令部署
hotdrink
微服务、入口和密钥:kubectl create -f team_hotdrink.yaml -n sg-demo
kubectl create -f hotdrink-secret.yaml -n sg-demo
在 NetScaler 控制台中部署 CPX 并注册 CPX
-
运行
kubectl create -f rbac.yaml
以部署群集角色和群集绑定。 -
运行
kubectl create -f cpx.yaml -n sg-demo
以部署 CPX。
部署完成后,CPX 注册将自动完成。
为许可启用自动选择虚拟服务器
注意
确保您有足够的虚拟服务器许可证。有关详细信息,请参阅许可。
在 NetScaler 控制台中添加 Kubernetes 群集后,必须确保自动选择虚拟服务器进行许可。CPX 虚拟服务器必须获得许可才能在服务图中显示数据。要自动选择虚拟服务器,请执行以下操作:
-
导航到“设置”>“NetScaler 控制台许可和分析配置”。
-
在“虚拟服务器许可证摘要”下,启用 自动选择虚拟服务器 并 自动选择不可寻址的虚拟服务器。
启用 Web 事务和 TCP 事务设置
添加 Kubernetes 群集并启用自动选择虚拟服务器后,将 Web 事务设置和 TCP 事务设置更改为全部。
-
导航到设置 > 分析设置。
屏幕上将显示“设置”页面。
-
单击启用分析功能。
-
在 Web 事务设置下,选择 全部。
-
在 TCP 事务设置下,选择 全部。
-
单击确定。
向微服务发送流量
然后,您必须向微服务发送流量,以便在 NetScaler 控制台中填充服务图。
-
运行
kubectl get svc -n sg-demo
以通过 NodePort 公开 CPX。 -
编辑 etc/host 文件并为
hotdrink.beverages.com
创建域 IP 条目现在,您可以使用
https://hotdrink.beverages.com