Kubernetes 从主机系统还原kubeconfig
我设置了一个k8s集群,并成功地杀死了我的kubeconfig(显然无法恢复):(我确实可以访问节点,但也可以分别访问controlplance和etcd上运行的容器。是否有任何方法从集群中检索工作的kubeconfig 我用rancher建立了这个集群,不幸的是rancher坏得很厉害,主机系统的ip发生了变化,letsencrypt证书用完了 所有部署实际上都运行良好,我只是无法再访问群集:( 这是我的kube配置:Kubernetes 从主机系统还原kubeconfig,kubernetes,rancher,kubeconfig,Kubernetes,Rancher,Kubeconfig,我设置了一个k8s集群,并成功地杀死了我的kubeconfig(显然无法恢复):(我确实可以访问节点,但也可以分别访问controlplance和etcd上运行的容器。是否有任何方法从集群中检索工作的kubeconfig 我用rancher建立了这个集群,不幸的是rancher坏得很厉害,主机系统的ip发生了变化,letsencrypt证书用完了 所有部署实际上都运行良好,我只是无法再访问群集:( 这是我的kube配置: apiVersion: v1 clusters: - cluster:
apiVersion: v1
clusters:
- cluster:
server: https://[broken-rancher-server]/k8s/clusters/c-7l92q
name: my-cluster
- cluster:
certificate-authority-data: UlZMG1VR3VLYUVMT...
server: https://1.1.1.1:6443
name: my-cluster-prod-cp-etcd-1
- cluster:
certificate-authority-data: UlZMG1VR3VLYUVMT...
server: https://1.1.1.2:6443
name: my-cluster-prod-cp-etcd-2
contexts:
- context:
cluster: my-cluster-prod-cp-etcd-1
user: u-jv5hx
name: my-cluster-prod-cp-etcd-1
- context:
cluster: my-cluster-prod-cp-etcd-2
user: u-jv5hx
name: my-cluster-prod-cp-etcd-2
current-context: my-cluster
kind: Config
preferences: {}
users:
- name: u-jv5hx
user:
token: kubeconfig-u-jv5hx.c-7l92q:z2jjt5wx7xxxxxxxxxxxxxxxxxx7nxhxn6n4q
如果我再次访问这个集群,我可以简单地设置一个新的rancher实例并导入该集群,但为此,我首先需要访问它
非常感谢您的任何提示,因为我现在几乎没有想法了。RKE v0.1.x或Rancher v2.0.x/v2.1.x自定义群集控制平面节点 Oneliner(RKE和Rancher定制集群) 如果您知道自己在做什么(需要节点上的kubectl和jq) Docker运行命令(Rancher自定义集群) 要在具有controlplane角色的节点上执行,这将使用rancher/rancher代理映像检索kubeconfig 1.找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 secret -n kube-system kube-admin -o jsonpath={.data.Config} | base64 -d | sed -e "/^[[:space:]]*server:/ s_:.*_: \"https://127.0.0.1:6443\"_"' > kubeconfig_admin.yaml
2.运行kubectl get节点
docker run --rm --net=host -v $PWD/kubeconfig_admin.yaml:/root/.kube/config --entrypoint bash $(docker inspect $(docker images -q --filter=label=io.cattle.agent=true) --format='{{index .RepoTags 0}}' | tail -1) -c 'kubectl get nodes'
有关rancher和脚本的其他版本的更多详细信息
docker run --rm --net=host -v $PWD/kubeconfig_admin.yaml:/root/.kube/config --entrypoint bash $(docker inspect $(docker images -q --filter=label=io.cattle.agent=true) --format='{{index .RepoTags 0}}' | tail -1) -c 'kubectl get nodes'