首页 / 平台管理 / 集群管理 / 集群 / 常见问题 / 如何获取接入集群信息?

如何获取接入集群信息?

问题描述

为了获得与接入集群连接所需的配置信息,以便在后续操作中平台可以授权访问和管理该集群。本节提供了获取接入集群信息的操作介绍。

前提条件

获取集群信息

获取集群令牌

  1. 请执行以下命令行:

    # 【重要!】以下操作只支持在 bash 中执行
    
    # 手动创建 secret、关联 serviceaccount、生成永不过期的 token
    kubectl get ns cpaas-system > /dev/null 2>&1 || kubectl create namespace cpaas-system
    kubectl create serviceaccount k8sadmin -n cpaas-system
    kubectl create clusterrolebinding k8sadmin --clusterrole=cluster-admin --serviceaccount=cpaas-system:k8sadmin
    
    cat | kubectl apply -f - <<EOF
    apiVersion: v1
    kind: Secret
    metadata:
      name: k8sadmin
      namespace: cpaas-system
      annotations:
        kubernetes.io/service-account.name: "k8sadmin"
    type: kubernetes.io/service-account-token
    EOF
    
    kubectl -n cpaas-system describe secret \
        $(kubectl -n cpaas-system get secret | (grep k8sadmin || echo "$_") | awk '{print $1}') \
        | grep -F 'token:' | awk '{print $2}'
  2. 上一步获得的 token 示例如下图所示。

  3. 校验获得的 token 的有效期。

    可使用任何支持 JWT token 解析的工具分析获得的 token,确认 token 的到期时间. 若解析结果中能找到过期时间(有键值对包含 “exp” 字样,如下图所示),超过该时间后本平台会无法管理接入集群。 此时请停止操作,并申请技术支持。

    提示: 过期时间在 JWT token 的原始载荷中记为 "exp": 1684486916, ,其值为 UNIX 时间戳,可转换为 UTC 时间。

获取接入集群 apiserver 的访问地址和 CA 证书

**提示:** 如果已通过本平台接入集群页的 `解析 KubeConfig 文件` 功能获得了 apiserver 的访问地址和 CA 证书,请跳过这一步。
  1. 请执行以下命令行:

    # 查看接入集群 apiserver 的访问地址。有可能会找到多个访问地址,请根据接入集群的需要选择合适的访问地址。
    kubectl --kubeconfig "${HOME}/.kube/config" config view --show-managed-fields=false --flatten --raw -ojsonpath='{$.clusters..cluster.server}'
    addr_apiserver='<选定的 apiserver 访问地址>'
    
    # 获取上一步指定的 apiserver 的 CA 证书
    kubectl --kubeconfig "${HOME}/.kube/config" config view --show-managed-fields=false --flatten --raw \
        -ojsonpath="{$.clusters[?(@.cluster.server == '${addr_apiserver}')].cluster.certificate-authority-data}" \
        | base64 -d