5.5. 在多集群网格中安装 Kiali


在两个 OpenShift Container Platform 集群的多集群网格配置中安装 Kiali。

注意

在此过程中,CLUSTER1 是东集群,CLUSTER2 是 West 集群。

您可以为跨越多个集群的网格调整这些说明。

先决条件

  • 您已在每个集群中安装了最新的 Kiali Operator。
  • Istio 在每个集群的多集群配置中安装。
  • 您已在笔记本电脑上安装了 istioctl,您可以使用它们运行这些说明。
  • 以具有 cluster-admin 角色的用户身份登录到 OpenShift Container Platform Web 控制台。
  • 您已配置了指标存储,以便 Kiali 可以从所有集群查询指标。Kiali 从对应的端点查询指标和追踪。

步骤

  1. 在东集群中安装 Kiali:

    1. 创建名为 kiali.yaml 的 YAML 文件,它为 Kiali 部署创建一个命名空间。

      配置示例

      apiVersion: kiali.io/v1alpha1
      kind: Kiali
      metadata:
        name: kiali
        namespace: istio-system
      spec:
        version: default
        external_services:
          prometheus:
            auth:
              type: bearer
              use_kiali_token: true
            thanos_proxy:
              enabled: true
            url: https://thanos-querier.openshift-monitoring.svc.cluster.local:9091
      Copy to Clipboard Toggle word wrap

      注意

      本例的端点使用 OpenShift Monitoring 来配置指标。如需更多信息,请参阅"使用 Kiali 配置 OpenShift Monitoring"。

    2. 运行以下命令,在 East 集群中应用 YAML 文件:

      $ oc --context cluster1 apply -f kiali.yaml
      Copy to Clipboard Toggle word wrap

      输出示例

      kiali-istio-system.apps.example.com
      Copy to Clipboard Toggle word wrap

  2. 运行以下命令,确保 Kiali 自定义资源(CR)已就绪:

    $ oc wait --context cluster1 --for=condition=Successful kialis/kiali -n istio-system --timeout=3m
    Copy to Clipboard Toggle word wrap

    输出示例

    kiali.kiali.io/kiali condition met
    Copy to Clipboard Toggle word wrap

  3. 显示 Kiali Route 主机名。

    $ oc --context cluster1 get route kiali -n istio-system -o jsonpath='{.spec.host}'
    Copy to Clipboard Toggle word wrap
  4. 在 West 集群中创建一个 Kiali CR。

    配置示例

    apiVersion: kiali.io/v1alpha1
    kind: Kiali
    metadata:
      name: kiali
      namespace: istio-system
    spec:
      version: default
      auth:
        openshift:
          redirect_uris:
            # Replace kiali-route-hostname with the hostname from the previous step.
            - "https://{kiali-route-hostname}/api/auth/callback/cluster2"
      deployment:
        remote_cluster_resources_only: true
    Copy to Clipboard Toggle word wrap

    Kiali Operator 在 East 集群中创建 Kiali 服务器所需的资源,以连接到 West 集群。Kiali 服务器没有安装在 West 集群中。

  5. 运行以下命令,在 West 集群中应用 YAML 文件:

    $ oc --context cluster2 apply -f kiali-remote.yaml
    Copy to Clipboard Toggle word wrap
  6. 运行以下命令,确保 Kiali CR 已就绪:

    $ oc wait --context cluster2 --for=condition=Successful kialis/kiali -n istio-system --timeout=3m
    Copy to Clipboard Toggle word wrap
  7. 创建一个远程集群 secret,以便 East 集群中的 Kiali 安装可以访问 West 集群。

    1. 创建与 West 集群中的 kiali-service-account 绑定的长存 API 令牌。Kiali 使用此令牌向 West 集群进行身份验证。

      配置示例

      apiVersion: v1
      kind: Secret
      metadata:
        name: "kiali-service-account"
        namespace: "istio-system"
        annotations:
          kubernetes.io/service-account.name: "kiali-service-account"
      type: kubernetes.io/service-account-token
      Copy to Clipboard Toggle word wrap

    2. 运行以下命令,在 West 集群中应用 YAML 文件:

      $ oc --context cluster2 apply -f kiali-svc-account-token.yaml
      Copy to Clipboard Toggle word wrap
    3. 创建 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
      Copy to Clipboard Toggle word wrap
    4. 运行以下命令修改脚本使其可以执行:

      chmod +x kiali-prepare-remote-cluster.sh
      Copy to Clipboard Toggle word wrap
    5. 运行以下命令执行脚本,使其将 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
      Copy to Clipboard Toggle word wrap
      注意

      使用 --help 选项显示如何使用脚本的更多详情。

  8. 运行以下命令触发协调循环,以便 Kiali Operator 会注册 CR 包含的远程 secret:

    $ oc --context cluster1 annotate kiali kiali -n istio-system --overwrite kiali.io/reconcile="$(date)"
    Copy to Clipboard Toggle word wrap
  9. 运行以下命令等待 Kiali 资源就绪:

    oc --context cluster1 wait --for=condition=Successful --timeout=2m kialis/kiali -n istio-system
    Copy to Clipboard Toggle word wrap
  10. 运行以下命令等待 Kiali 服务器就绪:

    oc --context cluster1 rollout status deployments/kiali -n istio-system
    Copy to Clipboard Toggle word wrap
  11. 登录到 Kiali。

    1. 首次访问 Kiali 时,登录到包含 Kiali 部署的集群。在本例中,访问 East 集群。
    2. 运行以下命令,显示 Kiali 路由的主机名:

      oc --context cluster1 get route kiali -n istio-system -o jsonpath='{.spec.host}'
      Copy to Clipboard Toggle word wrap
    3. 进入浏览器中的 Kiali URL: https://<your-kiali-route-hostname >。
  12. 通过 Kiali 登录到 West 集群。

    要在 Kiali UI 中看到其他集群,您必须首先通过 Kiali 登录到这些集群。

    1. 单击右上角的用户配置文件下拉菜单。
    2. 选择 Login to West。您将被重定向到 OpenShift 登录页面,并提示输入 West 集群的凭据。
  13. 验证 Kiali 是否显示来自两个集群的信息。

    1. Overview,验证您可以从两个集群中看到命名空间。
    2. Navigate,验证您看到网格图形上的两个集群。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat