小版本更新kubernetes

简介: 此脚本基于 https://github.com/cby-chen/Kubernetes/ 仓库内的安装部署文档。此脚本仅会升级k8s相关组件其他组件不进行升级。使用此脚本 务必是使用 该文档进行部署的集群。

小版本更新kubernetes

背景

最近一段时间躺平了没有更新我的博客文档。感谢各位小伙伴一直以来的支持。

此脚本基于 https://github.com/cby-chen/Kubernetes/ 仓库内的安装部署文档。
此脚本仅会升级k8s相关组件其他组件不进行升级。
使用此脚本 务必是使用 该文档进行部署的集群。

脚本放在我的GitHub仓库中:
https://github.com/cby-chen/Kubernetes/blob/main/shell/update_k8s.sh

注意事项

更新时集群会进行重启!!!

#!/bin/bash

###
#   作者:陈步云
#   微信:15648907522
#   更新k8s集群,目前脚本支持小版本之间的更新
# 
# 
#   注意!!!!
#   更新时候服务会重启
#   https://github.com/cby-chen/Kubernetes/blob/main/shell/update_k8s.sh

# 升级小版本
export k8s='1.27.4'

# 服务器地址
export All="192.168.0.31 192.168.0.32 192.168.0.33 192.168.0.34 192.168.0.35"
export Master='192.168.0.31 192.168.0.32 192.168.0.33'
export Work='192.168.0.34 192.168.0.35'

# 服务器的密码
export SSHPASS=123123


echo '开始安装免密工具'

# 判断系统类型并进行安装
os=$(cat /etc/os-release 2>/dev/null | grep ^ID= | awk -F= '{print $2}')
if [ "$os" = "\"centos\"" ]; then
   yum update -y ; yum install -y sshpass
fi
if [ "$os" = "ubuntu" ]; then
   apt update -y ; apt install -y sshpass
fi

# 配置免密登录
ssh-keygen -f /root/.ssh/id_rsa -P '' -y
for HOST in ${All};do
     sshpass -f  -e ssh-copy-id -o StrictHostKeyChecking=no $HOST
done


echo '开始下载所需包'

# 创建工作目录
mkdir -p update_k8s && cd update_k8s

# 下载所需版本
if [ -e "kubernetes-server-linux-amd64.tar.gz" ]; then
    echo "文件存在"
else
    echo "文件不存在"
    wget https://dl.k8s.io/v${k8s}/kubernetes-server-linux-amd64.tar.gz && tar xf kubernetes-server-linux-amd64.tar.gz
fi

echo '开始更新集群'


# 拷贝所需安装包并重启
for master in ${Master}; do
    # 停止服务...
    ssh ${master} "systemctl stop kube-apiserver kube-controller-manager kube-scheduler kubelet kube-proxy"
    # 分发安装包...
    scp kubernetes/server/bin/kube{let,ctl,-apiserver,-controller-manager,-scheduler,-proxy} ${master}:/usr/local/bin/
    # 启动服务...
    ssh ${master} "systemctl restart kube-apiserver kube-controller-manager kube-scheduler kubelet kube-proxy"
done

# 拷贝所需安装包并重启
for work in ${Work}; do
    # 停止服务...
    ssh ${work} "systemctl stop kubelet kube-proxy"
    # 分发安装包...
    scp kubernetes/server/bin/kube{let,-proxy} ${work}:/usr/local/bin/
    # 启动服务...
    ssh ${work} "systemctl restart kubelet kube-proxy"
done

echo '更新完成,`kubectl get node`看一下结果吧!'

关于

https://www.oiox.cn/

https://www.oiox.cn/index.php/start-page.html

CSDN、GitHub、51CTO、知乎、开源中国、思否、博客园、掘金、简书、华为云、阿里云、腾讯云、哔哩哔哩、今日头条、新浪微博、个人博客

全网可搜《小陈运维》

文章主要发布于微信公众号

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
基于粒子滤波器的电池剩余使用寿命计算matlab仿真
本研究基于粒子滤波器预测电池剩余使用寿命(RUL),采用MATLAB2022a实现。通过非线性动力学模型模拟电池老化过程,利用粒子滤波器处理非线性和非高斯问题,准确估计电池SOH变化趋势,进而预测RUL。系统仿真结果显示了良好的预测性能。
|
11月前
|
缓存 安全 网络协议
HTTPS协议的历史发展
HTTPS协议的历史发展
425 8
|
11月前
|
缓存 NoSQL JavaScript
布谷直播软件源码开发搭建技术教程
直播软件源码开发搭建技术教程干货分享!
|
人工智能 知识图谱 Windows
Mistral 7B v0.2 基础模型开源,魔搭社区微调教程和评测来啦!
Mistral AI在3月24日突然发布并开源了 Mistral 7B v0.2模型,有如下几个特点
|
缓存 JSON Java
一文教会你 Spring Boot中的热部署与单元测试(简单易懂,附源码实战)
一文教会你 Spring Boot中的热部署与单元测试(简单易懂,附源码实战)
229 0
|
Kubernetes 应用服务中间件 nginx
解释一下Kubernetes Minikube是什么,以及如何在本地运行一个Minikube集群
步骤1:准备环境 在开始之前,您需要确保本地环境已经具备以下几个关键的工具和组件:
1773 1
|
监控 Cloud Native 物联网
MQTT 连接优化指南
MQTT 连接优化指南
1119 0
|
缓存 关系型数据库 MySQL
|
存储 数据可视化 计算机视觉
MATLAB绘图:plot函数与bar函数详解
MATLAB绘图:plot函数与bar函数详解
748 0
MATLAB绘图:plot函数与bar函数详解