惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
N
Netflix TechBlog - Medium
V
Visual Studio Blog
博客园 - Franky
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 三生石上(FineUI控件)
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
宝玉的分享
宝玉的分享
量子位
大猫的无限游戏
大猫的无限游戏
人人都是产品经理
人人都是产品经理
V
V2EX
The Cloudflare Blog
月光博客
月光博客
Last Week in AI
Last Week in AI
雷峰网
雷峰网
WordPress大学
WordPress大学
博客园 - 【当耐特】
博客园 - 聂微东
IT之家
IT之家
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

博客园 - cn2025

K8s -sentinel-dashboard【nacos版本】集 20260815 kubeSphere【ks-controller-manager-webhook-cert】证书 20260814 K8s -nacos集 20260813 K8s - 安装部署redis集群-哨兵sentinels集(支持从K8s外部访问)20260812 k8s-deployment发布测试(pv-pvc-deployment-service) 20260810 K8s - 安装部署Kafka、Zookeeper集群教程(支持从K8s外部访问)20260808 【kubeSphere发布ruoyi-pro前端】工具脚本20260731 【k8s】 etcd服务端及客户端版本及快照【定时】备份 20260730 harbor【https启用】及k8节点部证书20260728 kube-flannel.yml k8s集群-安装helm 【kubeShpere】 官网 20260710 kubesphere-KDP 工具脚本【kubeSphere发布ruoyi-pro前端】20260720 HbuilderX 内置终端转为 gitBash 20260720 kubeSphere发布ruoyi-pro后端-用到脚本 kubeSphere发布ruoyi-web前端 20260711 kubeSphere发布ruoyi-pro后端 k8s集群-kubeShpere 20260710 安装Helm 20260710 k8s-portainer docker 镜像查询 k8集群一键重置 docker run OceanBase spring ai alibaba doc AI2.0 【多模态】 20260615 世界只有一个墨脱 AI2.0 【Mcp-client】 20260611 AI2.0 【Mcp-server】 20260611 GoLand 配Go SDK AI2.0 【redis向量-Rag】 问答顾问器QuestionAnswerAdvisor 20260608
k8s-关机及启动脚本工具
2026cn · 2026-08-05 · via 博客园 - cn2025
  • k8s-master:192.168.91.166
  • k8s-node2:192.168.91.167
  • k8s-node3:192.168.91.168
  • 账号:root,密码:root

image

一、k8s关机

流程顺序:drain 排空 node2 → drain 排空 node3 → drain 排空 master → 查看节点确认调度关闭 → 关闭 node2、node3 → 最后关闭 master

1、安装 sshpass(centos)

yum install -y sshpass

2、k8s_cluster_shutdown.sh关机脚本

#!/bin/bash

# 节点配置
MASTER_IP="192.168.91.166"
NODE2_IP="192.168.91.167"
NODE3_IP="192.168.91.168"
USER="root"
PASS="root"

echo "===== 1. 排空 node2(k8s-node2) ====="
kubectl drain k8s-node2 --ignore-daemonsets --delete-emptydir-data --force

echo "===== 2. 排空 node3(k8s-node3) ====="
kubectl drain k8s-node3 --ignore-daemonsets --delete-emptydir-data --force

echo "===== 3. 排空 master(k8s-master) ====="
kubectl drain k8s-master --ignore-daemonsets --delete-emptydir-data --force

echo "===== 4. 校验节点状态,确认调度关闭 ====="
kubectl get node

echo "===== 5. 下发关机命令 node2、node3 ====="
# nohup后台执行关机,ssh连接断开不会打断本地脚本
sshpass -p "${PASS}" ssh -o StrictHostKeyChecking=no ${USER}@${NODE2_IP} "nohup shutdown -h now >/dev/null 2>&1 &"
sleep 2
sshpass -p "${PASS}" ssh -o StrictHostKeyChecking=no ${USER}@${NODE3_IP} "nohup shutdown -h now >/dev/null 2>&1 &"

echo "等待10秒,worker节点关机中..."
sleep 10

echo "===== 6. 下发master关机命令 ====="
sshpass -p "${PASS}" ssh -o StrictHostKeyChecking=no ${USER}@${MASTER_IP} "nohup shutdown -h now >/dev/null 2>&1 &"

echo "=== 全部节点关机命令已下发完成 ==="
echo "注意:master节点执行关机后本机shell会断开,属于正常现象"

3、执行脚本

####授权

chmod +x k8s_cluster_shutdown.sh

####执行脚本

./k8s_cluster_shutdown.sh

二、k8s_cluster_shutdown.sh启动脚本

流程顺序:机器层面先手动开机 master,等待 3‑5 分钟组件就绪开机成功,再开机 node2/node3;

然后在 master 执行脚本解除节点封锁(解除 k8s‑master 封锁 → 解除 k8s‑node2 封锁 → 解除 k8s‑node3 封锁),校验节点 Ready 状态

 1、k8s_cluster_shutdown.sh开机脚本

#!/bin/bash
set -e

echo "====================================="
echo "K8s集群开机恢复:执行uncordon解除节点封锁"
echo "前提:服务器硬件已经全部开机,master等待3‑5分钟组件就绪"
echo "====================================="

echo "1. 解除 k8s‑master 封锁"
kubectl uncordon k8s-master

echo "2. 解除 k8s‑node2 封锁"
kubectl uncordon k8s-node2

echo "3. 解除 k8s‑node3 封锁"
kubectl uncordon k8s-node3

echo ""
echo "4. 检查全部节点状态,确认回到Ready"
kubectl get node

echo ""
echo "如果节点不是Ready,请等待容器组件启动后再次执行 kubectl get node 查看"

2、执行脚本

####授权

chmod +x k8s_cluster_startup.sh 

在k8s-master节点执行

./k8s_cluster_startup.sh