CentOS ARM 部署 kubernetes v1.24.6

1.背景

之前安装的kubernetes版本为v1.19.0 树莓派使用(CentOS7.9 armv71 Kubernetes1.19.0), 由于版本过低,一些HPA相关的功能支持不是特别好,因此需要将版本升级,本次会将版本升级为v1.24.6.

2. 如何upgrade

2.1. 优雅升级

kubeadm自带支持优雅升级,详情见 kubeadm upgrade

2.2. 卸载升级

鉴于本次版本升级跨度比较大,kubernetes 1.19使用的还是docker作为CRI,但是到了kubernetes 1.24.6,建议使用的为containerd 作为CRI,因此需要额外安装一些组件;鉴于集群上没有什么重要的数据,因此我采用直接卸载掉旧集群做upgrade;

bash 复制代码
# 卸载命令
kubeadm reset

2.2.1. 安装containerd

containerd release 中下载对应系统架构的最新版本

对于arm 架构,我们需要在 containerd arm release中找到我们需要的版本

shell 复制代码
// containerd 1.7.0 arm
// https://github.com/alexellis/containerd-arm/releases/download/v1.7.0/containerd-1.7.0-linux-armhf.tar.gz
// 由于官网下载速度过慢,因此我们使用github代理: https://ghproxy.com/
// containerd 1.7.0 arm github proxy (recommend)
mkdir -p ~/kubernetes/containerd-1.7.0 
wget https://ghproxy.com/?q=https%3A%2F%2Fgithub.com%2Falexellis%2Fcontainerd-arm%2Freleases%2Fdownload%2Fv1.7.0%2Fcontainerd-1.7.0-linux-armhf.tar.gz -O ~/kubernetes/containerd-1.7.0-linux-armhf.tar.gz 
tar -zxvf ~/kubernetes/containerd-1.7.0-linux-armhf.tar.gz -C ~/kubernetes/containerd-1.7.0

// 注意好路径 将该可执行文件链接到/usr/bin, /usr/local/bin 路径下
ln -s /root/kubernetes/containerd-1.7.0/containerd /usr/bin/containerd 
ln -s /root/kubernetes/containerd-1.7.0/containerd-shim /usr/bin/containerd-shim
ln -s /root/kubernetes/containerd-1.7.0/containerd-shim-runc-v1 /usr/bin/containerd-shim-runc-v1 
ln -s /root/kubernetes/containerd-1.7.0/containerd-shim-runc-v2 /usr/bin/containerd-shim-runc-v2 
ln -s /root/kubernetes/containerd-1.7.0/containerd-stress /usr/bin/containerd-stress 
ln -s /root/kubernetes/containerd-1.7.0/ctr /usr/bin/ctr 
......

// 导出containerd配置文件到指定目录
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml

// 修改containerd默认的sandbox_image地址
sed -i 's#registry.k8s.io/pause:3.8#registry.aliyuncs.com/google_containers/pause:3.8#g' /etc/containerd/config.toml
systemctl daemon-reload
systemctl restart containerd
systemctl enable --now containerd

2.2.2. 安装 runc

runc release找到符合自己系统架构的runc, 通过 github proxy 下载该版本

shell 复制代码
# arm
install -m 755 runc.armhf /usr/bin/runc
runc -v

2.2.3.安装kubernetes

shell 复制代码
kubeadm init --kubernetes-version=v1.24.6 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16 --v=10 --image-repository="registry.aliyuncs.com/google_containers"

kubectl get po -n kube-system

Reference

Kubernetes v1.24
Getting Started with Containerd

相关推荐
严格要求自己19 小时前
nacos-operator在k8s集群上部署nacos-server2.4.3版本踩坑实录
云原生·容器·kubernetes
少吃一口就会少吃一口19 小时前
k8s笔记
云原生·容器·kubernetes
葡萄皮Apple19 小时前
[CKS] K8S ServiceAccount Set Up
服务器·容器·kubernetes
2301_8061313621 小时前
Kubernetes 核心组件调度器(Scheduler)
云原生·容器·kubernetes
放手啊1 天前
sealos部署K8s,安装docker时master节点突然NotReady
docker·容器·kubernetes
颜淡慕潇2 天前
【K8S问题系列 | 9】如何监控集群CPU使用率并设置告警?
后端·云原生·容器·kubernetes·问题解决
运维&陈同学2 天前
【模块一】kubernetes容器编排进阶实战之k8s基础概念
运维·docker·云原生·容器·kubernetes·云计算
葡萄皮Apple2 天前
[CKS] K8S RuntimeClass SetUp
java·容器·kubernetes
斯普信专业组2 天前
Kubernetes网络揭秘:从DNS到核心概念,一站式综述
网络·容器·kubernetes
颜淡慕潇2 天前
【K8S系列 】在K8S集群怎么查看各个pod占用的资源大小与详细解决方案【已解决】
后端·云原生·容器·kubernetes·问题解决