小版本更新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、知乎、开源中国、思否、博客园、掘金、简书、华为云、阿里云、腾讯云、哔哩哔哩、今日头条、新浪微博、个人博客

全网可搜《小陈运维》

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

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
7月前
|
存储 Kubernetes API
Kubernetes 1.26版本更新解读
Kubernetes 1.26版本更新解读
|
8月前
|
Kubernetes 容器
934.【kubernetes】kubeadm版本更新证书
934.【kubernetes】kubeadm版本更新证书
359 2
|
Kubernetes 容器
阿里云 Kubernetes 版本中
阿里云 Kubernetes 版本中
142 1
|
存储 Kubernetes Docker
Kubernetes(k8s) 最新版本安装部署
Kubernetes最新版本(v1.24+)移除了对Docker作为容器运行时的原生支持,但这并不意味着完全不支持Docker。 - Kubernetes仍然支持使用Docker镜像。所有现有的Docker镜像可以直接用在k8s集群中,不需要修改。 - Kubernetes已经全面拥抱容器运行时接口(CRI)。最新版本的kubelet将通过CRI管理容器,而不是直接通过Docker API。 - 用户可以继续使用Docker作为CRI运行时。只需要安装并配置Docker的CRI插件,即docker-containerd插件,kubelet就可以通过CRI控制Docker。
880 1
|
存储 Kubernetes 应用服务中间件
Kubernetes(k8s)环境部署 2
Kubernetes(k8s)环境部署
88 0
|
Kubernetes 应用服务中间件 Docker
Kubernetes(k8s)环境部署 1
Kubernetes(k8s)环境部署
215 0
|
人工智能 Kubernetes Linux
将Kubernetes集群版本从1.18升级至1.24
本文记录了一次将Kubernetes集群从1.18.0版本升级到1.24.16版本的过程以及遇到的相关问题的解决。
1790 0
|
存储 Kubernetes API
Kubernetes 怎么优雅升级
Kubernetes 怎么优雅升级
211 1
|
存储 Kubernetes 监控
Kubernetes 部署策略
Kubernetes 部署策略
508 1
|
Kubernetes 安全 网络性能优化
kubernetes 1.14 升级安装指南
按照要求查看kubernetes 1.14 更改说明重点阅读Urgent Upgrade Notes,结合自己业务,并没有发现特别重大的变动,可以放心升级。
572 0
kubernetes 1.14 升级安装指南