亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Rancher K8S集群怎樣恢復丟失的kubeconfig配置文件

發布時間:2021-12-16 09:36:39 來源:億速云 閱讀:1153 作者:柒染 欄目:云計算

這篇文章給大家介紹Rancher K8S集群怎樣恢復丟失的kubeconfig配置文件,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

分析 Rancher UI 生成的 kubeconfig 文件可以發現,第一個server對應的是 Rancher Server 的 url 或者 IP。當 kubectl 訪問 K8S API SERVER 的時候,請求是先發送到 Rancher,然后再通過 cluster agent 轉發給 K8S API SERVER

Rancher K8S集群怎樣恢復丟失的kubeconfig配置文件

在 Rancher v2.2.2 以前的版本,Rancher UI 生成的 kubecfg 文件中只設置了一個server。從 Rancher v2.2.2 開始,從 Rancher UI 創建的集群默認開啟授權集群訪問地址。創建好集群后 Rancher UI 生成的 kubecfg 文件中將顯示多個 master 節點 IP 對應的server

Rancher K8S集群怎樣恢復丟失的kubeconfig配置文件 Rancher K8S集群怎樣恢復丟失的kubeconfig配置文件

因此,Rancher v2.2.2以及之后版本通過 Rancher UI 創建的集群,如果 Rancher Server 無法訪問,那么可以通過kubectl --kubeconfig=xxx --context=xxx來切換server,但是前提是需要提前從 Rancher UI 保存 kubeconfig 文件。

如果 Rancher Server 無法訪問,對于Rancher v2.2.2之前的版本或者未提前保存 kubeconfig 的,可通過以下腳本找回kube-admin配置文件。

注意: 以下腳本需要在業務集群上執行,任意一個節點即可。保存以下文本為restore-kube-config.sh

#!/bin/bash

help ()
{
   echo  ' ================================================================ '
   echo  ' --master-ip: 指定 Master 節點 IP,任意一個 K8S Master 節點 IP 即可。'
   echo  ' 使用示例:bash restore-kube-config.sh --master-ip=1.1.1.1 '
   echo  ' ================================================================'
}

case "$1" in
   -h|--help) help; exit;;
esac

if [[ $1 == '' ]]; then
   help;
   exit;
fi

CMDOPTS="$*"
for OPTS in $CMDOPTS;
do
   key=$(echo ${OPTS} | awk -F"=" '{print $1}' )
   value=$(echo ${OPTS} | awk -F"=" '{print $2}' )
   case "$key" in
       --master-ip) K8S_MASTER_NODE_IP=$value ;;
   esac
done

# 獲取 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}' )

if [[ -d /etc/kubernetes/ssl ]]; then
 K8S_SSLDIR=/etc/kubernetes/ssl
else
 echo '/etc/kubernetes/ssl 目錄不存在'
 exit 1
fi

CHECK_CLUSTER_STATE_CONFIGMAP=$( docker run --rm --entrypoint bash --net=host \
-v $K8S_SSLDIR:/etc/kubernetes/ssl:ro $RANCHER_IMAGE -c '\
if kubectl --kubeconfig /etc/kubernetes/ssl/kubecfg-kube-node.yaml \
-n kube-system get configmap full-cluster-state | grep full-cluster-state > /dev/null; then \
echo 'yes'; else echo 'no'; fi' )

if [[ $CHECK_CLUSTER_STATE_CONFIGMAP != 'yes' ]]; then

 docker run --rm --net=host \
 --entrypoint bash \
 -e K8S_MASTER_NODE_IP=$K8S_MASTER_NODE_IP \
 -v $K8S_SSLDIR:/etc/kubernetes/ssl:ro \
 $RANCHER_IMAGE \
 -c '\
 kubectl --kubeconfig /etc/kubernetes/ssl/kubecfg-kube-node.yaml \
 -n kube-system \
 get secret kube-admin -o jsonpath={.data.Config} | base64 --decode | \
 sed -e "/^[[:space:]]*server:/ s_:.*_: \"https://${K8S_MASTER_NODE_IP}:6443\"_"' > kubeconfig_admin.yaml
 
 if [[ -s kubeconfig_admin.yaml ]]; then
   echo '恢復成功,執行以下命令測試:'
   echo ''
   echo "kubectl --kubeconfig kubeconfig_admin.yaml get nodes"
 else
   echo "kubeconfig 恢復失敗。"
 fi

else

 docker run --rm --entrypoint bash --net=host \
 -e K8S_MASTER_NODE_IP=$K8S_MASTER_NODE_IP \
 -v $K8S_SSLDIR:/etc/kubernetes/ssl:ro \
 $RANCHER_IMAGE \
 -c '\
 kubectl --kubeconfig /etc/kubernetes/ssl/kubecfg-kube-node.yaml \
 -n kube-system \
 get configmap full-cluster-state -o json | \
 jq -r .data.\"full-cluster-state\" | \
 jq -r .currentState.certificatesBundle.\"kube-admin\".config | \
 sed -e "/^[[:space:]]*server:/ s_:.*_: \"https://${K8S_MASTER_NODE_IP}:6443\"_"' > kubeconfig_admin.yaml
 
 if [[ -s kubeconfig_admin.yaml ]]; then
   echo '恢復成功,執行以下命令測試:'
   echo ''
   echo "kubectl --kubeconfig kubeconfig_admin.yaml get nodes"
 else
   echo "kubeconfig 恢復失敗。"
 fi
fi

關于Rancher K8S集群怎樣恢復丟失的kubeconfig配置文件就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

禹州市| 陈巴尔虎旗| 太仆寺旗| 泗阳县| 平度市| 秭归县| 宿州市| 铜陵市| 金塔县| 眉山市| 大石桥市| 女性| 沅江市| 黄大仙区| 长顺县| 浦东新区| 昭通市| 玛纳斯县| 宝清县| 中牟县| 天全县| 清水县| 东明县| 呼图壁县| 皋兰县| 清河县| 丹阳市| 鲁山县| 瓮安县| 河源市| 耒阳市| 武汉市| 莱州市| 彭水| 丰原市| 吐鲁番市| 称多县| 竹山县| 盐池县| 安化县| 黄陵县|