• 在 v0.2.0 之前,RKE 将 Kubernetes 集群状态保存为secret。更新状态时,RKE 会提取secret更新/更改状态并保存新secret
    • 从 v0.2.0 开始,RKE 在集群配置文件cluster.yml的同一目录中创建cluster.rkestate文件。该.rkestate文件包含集群的当前状态,包括。需要保留此文件以更新集群或通过 RKE 对集群执行任何操作。

    如果是通过rke v0.2.0之前版本创建的 Kubernetes 集群,那么建议升级 rke 版本到最新版本。

    rke v0.2.0以前的版本,是通过pki.bundle.tar.gz来保存组件证书。而rke v0.2.0及以后的版本通过.rkestate来保存组件证书。

    2. 找回.rkestate

    假如.rkestate无意间丢失或者损坏,可以通过集群中的配置映射文件恢复.rkestate。

    • 通过 master 节点找回

      1. docker run --rm --net=host \
      2. -v $(docker inspect kubelet --format '{{ range .Mounts }}{{ if eq .Destination "/etc/kubernetes" }}{{ .Source }}{{ end }}{{ end }}')/ssl:/etc/kubernetes/ssl:ro \
      3. rancher/rancher-agent:v2.2.2 \
      4. -c 'kubectl --kubeconfig /etc/kubernetes/ssl/kubecfg-kube-node.yaml get configmap \
      5. -n kube-system full-cluster-state -o json | jq -r .data.\"full-cluster-state\" | jq -r .' > <rke-config-name>.rkestate