如何创建kubeconfig

如何在rancher创建的k8s上, 生产kubeconfig文件?
不是从UI下载,希望kubectl使用和rancher无关的config 管理k8s

如下内容,实际如何做呢?

另外注意,如果不想让kubectl依赖rancher,即在rancher挂掉的情况下,kubectl还能对k8s集群进行操作,则要修改~/.kube/config的内容,去掉server端口为rancher端口的内容项,只保留server的url、端口为apiserver的内容项,并将current-context设置为apiserver对应的内容项名称即可。

cool

如果独立于rancher呢?

在具有controlplane的节点上生成kubeconfig

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