5.5. 在多集群网格中安装 Kiali
在两个 OpenShift Container Platform 集群的多集群网格配置中安装 Kiali。
在此过程中,CLUSTER1
是东集群,CLUSTER2
是 West 集群。
您可以为跨越多个集群的网格调整这些说明。
先决条件
- 您已在每个集群中安装了最新的 Kiali Operator。
- Istio 在每个集群的多集群配置中安装。
-
您已在笔记本电脑上安装了
istioctl
,您可以使用它们运行这些说明。 -
以具有
cluster-admin
角色的用户身份登录到 OpenShift Container Platform Web 控制台。 - 您已配置了指标存储,以便 Kiali 可以从所有集群查询指标。Kiali 从对应的端点查询指标和追踪。
步骤
在东集群中安装 Kiali:
创建名为
kiali.yaml
的 YAML 文件,它为 Kiali 部署创建一个命名空间。配置示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意本例的端点使用 OpenShift Monitoring 来配置指标。如需更多信息,请参阅"使用 Kiali 配置 OpenShift Monitoring"。
运行以下命令,在 East 集群中应用 YAML 文件:
oc --context cluster1 apply -f kiali.yaml
$ oc --context cluster1 apply -f kiali.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
kiali-istio-system.apps.example.com
kiali-istio-system.apps.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
运行以下命令,确保 Kiali 自定义资源(CR)已就绪:
oc wait --context cluster1 --for=condition=Successful kialis/kiali -n istio-system --timeout=3m
$ oc wait --context cluster1 --for=condition=Successful kialis/kiali -n istio-system --timeout=3m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
kiali.kiali.io/kiali condition met
kiali.kiali.io/kiali condition met
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 显示 Kiali Route 主机名。
oc --context cluster1 get route kiali -n istio-system -o jsonpath='{.spec.host}'
$ oc --context cluster1 get route kiali -n istio-system -o jsonpath='{.spec.host}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 West 集群中创建一个 Kiali CR。
配置示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kiali Operator 在 East 集群中创建 Kiali 服务器所需的资源,以连接到 West 集群。Kiali 服务器没有安装在 West 集群中。
运行以下命令,在 West 集群中应用 YAML 文件:
oc --context cluster2 apply -f kiali-remote.yaml
$ oc --context cluster2 apply -f kiali-remote.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,确保 Kiali CR 已就绪:
oc wait --context cluster2 --for=condition=Successful kialis/kiali -n istio-system --timeout=3m
$ oc wait --context cluster2 --for=condition=Successful kialis/kiali -n istio-system --timeout=3m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个远程集群 secret,以便 East 集群中的 Kiali 安装可以访问 West 集群。
创建与 West 集群中的 kiali-service-account 绑定的长存 API 令牌。Kiali 使用此令牌向 West 集群进行身份验证。
配置示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,在 West 集群中应用 YAML 文件:
oc --context cluster2 apply -f kiali-svc-account-token.yaml
$ oc --context cluster2 apply -f kiali-svc-account-token.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
kubeconfig
文件,并将其保存为 Kiali 部署所在的东集群中的 secret。要简化此过程,请使用
kiali-prepare-remote-cluster.sh
脚本通过运行以下curl
命令生成kubeconfig
文件:curl -L -o kiali-prepare-remote-cluster.sh https://raw.githubusercontent.com/kiali/kiali/master/hack/istio/multicluster/kiali-prepare-remote-cluster.sh
$ curl -L -o kiali-prepare-remote-cluster.sh https://raw.githubusercontent.com/kiali/kiali/master/hack/istio/multicluster/kiali-prepare-remote-cluster.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令修改脚本使其可以执行:
chmod +x kiali-prepare-remote-cluster.sh
chmod +x kiali-prepare-remote-cluster.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令执行脚本,使其将 East 和 West 集群上下文传递给
kubeconfig
文件:./kiali-prepare-remote-cluster.sh --kiali-cluster-context cluster1 --remote-cluster-context cluster2 --view-only false --kiali-resource-name kiali-service-account --remote-cluster-namespace istio-system --process-kiali-secret true --process-remote-resources false --remote-cluster-name cluster2
$ ./kiali-prepare-remote-cluster.sh --kiali-cluster-context cluster1 --remote-cluster-context cluster2 --view-only false --kiali-resource-name kiali-service-account --remote-cluster-namespace istio-system --process-kiali-secret true --process-remote-resources false --remote-cluster-name cluster2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意使用
--help
选项显示如何使用脚本的更多详情。
运行以下命令触发协调循环,以便 Kiali Operator 会注册 CR 包含的远程 secret:
oc --context cluster1 annotate kiali kiali -n istio-system --overwrite kiali.io/reconcile="$(date)"
$ oc --context cluster1 annotate kiali kiali -n istio-system --overwrite kiali.io/reconcile="$(date)"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令等待 Kiali 资源就绪:
oc --context cluster1 wait --for=condition=Successful --timeout=2m kialis/kiali -n istio-system
oc --context cluster1 wait --for=condition=Successful --timeout=2m kialis/kiali -n istio-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令等待 Kiali 服务器就绪:
oc --context cluster1 rollout status deployments/kiali -n istio-system
oc --context cluster1 rollout status deployments/kiali -n istio-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 登录到 Kiali。
-
首次访问 Kiali 时,登录到包含 Kiali 部署的集群。在本例中,访问
East
集群。 运行以下命令,显示 Kiali 路由的主机名:
oc --context cluster1 get route kiali -n istio-system -o jsonpath='{.spec.host}'
oc --context cluster1 get route kiali -n istio-system -o jsonpath='{.spec.host}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 进入浏览器中的 Kiali URL: https://<your-kiali-route-hostname >。
-
首次访问 Kiali 时,登录到包含 Kiali 部署的集群。在本例中,访问
通过 Kiali 登录到 West 集群。
要在 Kiali UI 中看到其他集群,您必须首先通过 Kiali 登录到这些集群。
- 单击右上角的用户配置文件下拉菜单。
- 选择 Login to West。您将被重定向到 OpenShift 登录页面,并提示输入 West 集群的凭据。
验证 Kiali 是否显示来自两个集群的信息。
- 点 Overview,验证您可以从两个集群中看到命名空间。
- 点 Navigate,验证您看到网格图形上的两个集群。