前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小版本更新kubernetes

小版本更新kubernetes

作者头像
小陈运维
发布2023-08-18 14:40:39
1880
发布2023-08-18 14:40:39
举报
文章被收录于专栏:小陈运维小陈运维

小版本更新kubernetes

背景

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

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

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

注意事项

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

代码语言:javascript
复制
#!/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`看一下结果吧!'
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-08-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小陈运维 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 小版本更新kubernetes
    • 背景
      • 注意事项
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档