Skip to content

多集群配置

Kite 提供了从单一仪表盘管理多个 Kubernetes 集群的强大支持。本指南说明如何配置和使用多集群功能。

概述

利用 Kite 的多集群支持,您可以:

  • 单击即可在多个集群之间切换
  • 为每个集群配置独立的 Prometheus 实例
  • 为每个集群应用不同的 RBAC 规则

配置方法

方法 1:使用 Kubeconfig 文件

配置多个集群的最简单方法是使用具有多个上下文的 kubeconfig 文件:

yaml
# values.yaml(用于 Helm)
multiCluster:
  enabled: false

  kubeconfig:
    fromContent: true

    # The kubeconfig file content (plain text)
    # 或者使用 helm 的 `--set-file` 参数传递文件内容
    #   helm install kite . --set-file multiCluster.kubeconfig.content=/path/to/kubeconfig
    content: |-
      apiVersion: v1
      kind: Config
      current-context: dev-cluster
      contexts:
      - name: dev-cluster
        context:
          cluster: development
          user: admin
      - name: prod-cluster
        context:
          cluster: production
          user: admin
      # ... 其他上下文、集群和用户

或者将其挂载到容器内,并使用环境变量指定 kubeconfig 路径:

bash
KUBECONFIG=/path/to/kubeconfig

方法 2:使用单独的 Secret Kubeconfig

对于生产环境中更安全的管理:

yaml
multiCluster:
  enabled: true
  kubeconfig:
    fromContent: false
    existingSecret: "kite-kubeconfig" # 指向包含 kubeconfig 的 Secret 名称
    secretKey: "kubeconfig" # Secret 中的键名

集群特定的 Prometheus 配置

详见 Prometheus 配置指南

多集群的 RBAC 配置

您可以为每个集群定义特定的 RBAC 规则:

yaml
# roles.yaml
roles:
  - name: prod-admin
    description: 生产集群的管理员
    clusters:
      - "prod-cluster"
    resources:
      - "*"
    namespaces:
      - "*"
    verbs:
      - "*"
  - name: dev-admin
    description: 开发集群的管理员
    clusters:
      - "dev-cluster"
    resources:
      - "*"
    namespaces:
      - "*"
    verbs:
      - "*"
  - name: view-all
    description: 所有集群的只读访问权限
    clusters:
      - "*"
    resources:
      - "*"
    namespaces:
      - "*"
    verbs:
      - "get"
      - "list"

roleMapping:
  - name: prod-admin
    users:
      - alice@example.com
    oidcGroups:
      - prod-admins
  - name: dev-admin
    users:
      - bob@example.com
    oidcGroups:
      - dev-admins
  - name: view-all
    oidcGroups:
      - viewers

Released under the Apache License.