中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何恢復rkestate狀態文件

發布時間:2021-12-24 09:54:00 來源:億速云 閱讀:203 作者:柒染 欄目:云計算

本篇文章為大家展示了如何恢復rkestate狀態文件,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

Kubernetes 集群狀態由 Kubernetes 集群中的集群配置文件 cluster.yml組件證書組成。由 RKE 生成,但根據 RKE 版本不同,集群狀態的保存方式不同。

  • 在 v0.2.0 之前,RKE 將 Kubernetes 集群狀態保存為secret。更新狀態時,RKE 會提取 secret更新/更改 狀態并保存新 secret

  • 從 v0.2.0 開始,RKE 在集群配置文件 cluster.yml 的同一目錄中創建 cluster.rkestate 文件。該 .rkestate 文件包含集群的當前狀態,包括RKE 配置和證書。需要保留此文件以更新集群或通過 RKE 對集群執行任何操作。

狀態文件轉換

如果是通過rke v0.2.0之前版本創建的 Kubernetes 集群,那么建議升級 rke 版本到最新版本。

rke v0.2.0以前的版本,是通過pki.bundle.tar.gz來保存組件證書。而rke v0.2.0及以后的版本通過.rkestate來保存組件證書。

在 rke 升級到最新版本后,需要有一個過渡操作。通過原始是 rke 配置文件,重新運行rke up將會自動生成.rkestate文件。

找回 .rkestate

假如 .rkestate 無意間丟失或者損壞,可以通過集群中的配置映射文件恢復 .rkestate。

通過 kubectl 配置文件找回

如果 .rkestate 丟失,但 kubecfg 未丟失, kubectl 還可以正常連接集群,可以運行以下命令找回 .rkestate:

注意: rke 在創建集群時,會自動創建 .rkestate 和 kubecfg 文件。.rkestate 和 kubecfg 文件的命名規則與 rke 配置文件名有一定關系。比如 rke 配置文件名為 cluster.yml,那么生成的 .rkestatecluster.rkestate,生成的 kubecfg 為 kube_config_cluster.yml
可以總結為:
1、kubecfg 命名規則:kube_config_<rke-cfg-name>.yml
2、.rkestate 命名規則:<rke-cfg-name>.rkestate

# 定義 rke 配置文件名稱,如果還存在則按存在的文件名填寫;如果不存在,則隨便填寫,比如名為 rancher-cluster,文件后綴 yaml/yml 不用填寫。
rke_config_name=rancher-cluster

kubecfg=kube_config_cluster.yml

kubectl --kubeconfig=${kubecfg} -n kube-system \
 get configmap full-cluster-state -o json | \
 jq -r .data.\"full-cluster-state\" | \
 jq -r . > ${rke_config_name}.rkestate

通過 master 節點找回

如果本地的 .rkestate 和 kubecfg 文件一并丟失,則需要登錄到 master 節點進行恢復,在 master 節點運行以下腳本:

if [[ -f /etc/kubernetes/ssl/kubecfg-kube-node.yaml ]]; then
 kubecfg=/etc/kubernetes/ssl/kubecfg-kube-node.yaml
elif [[ -f /etc/kubernetes/ssl/kubecfg-kube-node.yml ]]; then
 kubecfg=/etc/kubernetes/ssl/kubecfg-kube-node.yml
else
 echo 'kubecfg 配置文件不存在'
 exit 1
fi

# 獲取 Rancher Agent 鏡像
RANCHER_IMAGE=$( docker images --filter=label=io.cattle.agent=true | grep 'v2.' | \
 grep -v -E 'rc|alpha|<none>' | head -n 1 | awk '{print $3}' )

# 定義 rke 配置文件名稱,如果還存在則按存在的文件名填寫;如果不存在,則隨便填寫,比如名為 rancher-cluster,文件后綴 yaml/yml 不用填寫。
rke_config_name=rancher-cluster

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 ${RANCHER_IMAGE} \
 -c 'kubectl --kubeconfig=${kubecfg} \
 -n kube-system get configmap full-cluster-state -o json | \
 jq -r .data.\"full-cluster-state\" | \
 jq -r .' > ${rke_config_name}.rkestate

上述內容就是如何恢復rkestate狀態文件,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

比如县| 阳江市| 澎湖县| 太仓市| 道真| 盈江县| 广昌县| 麻江县| 双江| 四会市| 巨鹿县| 简阳市| 绥滨县| 当阳市| 马公市| 潞城市| 彰武县| 玉环县| 乌兰察布市| 南宁市| 黔西县| 合作市| 江西省| 沁水县| 曲阳县| 昌黎县| 太和县| 武陟县| 延安市| 巴塘县| 顺平县| 建宁县| 吉木萨尔县| 邳州市| 岗巴县| 浪卡子县| 宁陵县| 青河县| 久治县| 英吉沙县| 兴文县|