更新时间:2023-04-04 GMT+08:00
分享

获取KubeConfig

在第三方云服务商集群不支持直接导出KubeConfig文件时,可采用下列方法获取MCP可用的KubeConfig文件。

  1. (可选)设置kubectl。

    若集群可正常执行kubectl,可跳过本步骤。

    1. 获取kubectl文件的绝对路径***/kubectl
      which kubectl
    2. 获取您的KubeConfig文件路径***/config。默认情况下,kubectl的配置文件位于master节点的“$HOME/.kube/config”路径,您也可以使用--kubeconfig参数指定其他KubeConfig文件,详情请参见使用 kubeconfig 文件组织集群访问
    3. 设置kubectl。
      alias kubectl='***/kubectl --kubeconfig=***/config'

  2. 创建my-user-sa.yaml、my-user-role.yaml、my-user-role-binding.yaml文件。

    my-user-role.yaml:
    apiVersion: rbac.authorization.k8s.io/v1  
    kind: ClusterRole
    metadata:
      name: my-user-role
    rules:
    - apiGroups:
      - '*'
      resources:
      - '*'
      verbs:
      - '*'
    - nonResourceURLs:
      - '*'
      verbs:
      - get

    my-user-role-binding.yaml:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: my-user-role-binding
    subjects:
      - kind: ServiceAccount
        name: my-user
        namespace: default
    roleRef:
      kind: ClusterRole
      name: my-user-role
      apiGroup: rbac.authorization.k8s.io

    my-user-sa.yaml:

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: my-user

  3. 在纳管集群上进行操作。

    kubectl apply -f my-user-sa.yaml
    kubectl apply -f my-user-role.yaml
    kubectl apply -f my-user-role-binding.yaml

  4. 使用以下命令获取token。

    kubectl get secret -n default `kubectl get secret -n default | grep my-user | awk '{print $1}'` -oyaml | grep token: | awk '{print $2}' | base64 -d

  5. 配置KubeConfig文件。

    在下面kubeconfig.json中,将“server”参数替换为1“***/config”文件中的“server”字段地址,“token”参数替换为4中获取的值。

    kubeconfig.json:

    kind: Config
    apiVersion: v1
    preferences: {}
    clusters:
      - name: internalCluster
        cluster:
          server: 'https://119.xxx.xxx.xxx:5443' #替换集群API Server地址
          insecure-skip-tls-verify: true
    users:
      - name: user
        user:
          token: 'MIIFbAYJKo*****' #替换token
    contexts:
      - name: internal
        context:
          cluster: internalCluster
          user: user
    current-context: internal

  6. 添加集群,使用5中配置的KubeConfig文件。成功添加集群后,可以删除3中创建的ClusterRole、ClusterRoleBinding以及ServiceAccount。
分享:

    相关文档

    相关产品