Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 从主机系统还原kubeconfig_Kubernetes_Rancher_Kubeconfig - Fatal编程技术网

Kubernetes 从主机系统还原kubeconfig

Kubernetes 从主机系统还原kubeconfig,kubernetes,rancher,kubeconfig,Kubernetes,Rancher,Kubeconfig,我设置了一个k8s集群,并成功地杀死了我的kubeconfig(显然无法恢复):(我确实可以访问节点,但也可以分别访问controlplance和etcd上运行的容器。是否有任何方法从集群中检索工作的kubeconfig 我用rancher建立了这个集群,不幸的是rancher坏得很厉害,主机系统的ip发生了变化,letsencrypt证书用完了 所有部署实际上都运行良好,我只是无法再访问群集:( 这是我的kube配置: apiVersion: v1 clusters: - cluster:

我设置了一个k8s集群,并成功地杀死了我的kubeconfig(显然无法恢复):(我确实可以访问节点,但也可以分别访问controlplance和etcd上运行的容器。是否有任何方法从集群中检索工作的kubeconfig

我用rancher建立了这个集群,不幸的是rancher坏得很厉害,主机系统的ip发生了变化,letsencrypt证书用完了

所有部署实际上都运行良好,我只是无法再访问群集:(

这是我的kube配置:

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'