Rancher v2.3.5自定义的RKE K8S下游集群,开启授权集群访问地址后kubeconfig文件中没有k8s apiserver上下文,没法直连k8s apiserver

rancher v2.3.5自定义的RKE K8S下游集群,开启授权集群访问地址后kubeconfig文件中没有k8s apiserver上下文,只有rancher地址上下文信息,没法直连k8s apiserver


版本有点久远了,如果你想获取直接连接 api server 的 kubectl,试试使用如下命令在 控制节点执行:

docker run --rm --net=host -v $(docker inspect kubelet --format '{{ range .Mounts }}{{ if eq .Destination "/etc/kubernetes" }}{{ .Source }}{{ end }}{{ end }}')/ssl:/etc/kubernetes/ssl:ro --entrypoint bash $(docker inspect $(docker images -q --filter=label=io.cattle.agent=true) --format='{{index .RepoTags 0}}' | tail -1) -c 'kubectl --kubeconfig /etc/kubernetes/ssl/kubecfg-kube-node.yaml get configmap -n kube-system full-cluster-state -o json | jq -r .data.\"full-cluster-state\" | jq -r .currentState.certificatesBundle.\"kube-admin\".config | sed -e "/^[[:space:]]*server:/ s_:.*_: \"https://127.0.0.1:6443\"_"' > kubeconfig_admin.yaml

生成的 kubeconfig_admin.yaml 就是 kubeconfig 文件