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

相关推荐
—Qeyser4 小时前
Flutter GestureDetector 完全指南:让任何组件都能响应手势
flutter·云原生·容器·kubernetes
techzhi9 小时前
Apifox CLI + GitLab CI:接口自动化测试实施记录
java·ci/cd·kubernetes·gitlab·yapi·运维开发·fastapi
间彧9 小时前
Arthas Tunnel Server 在 Kubernetes 中的深度集成与实战指南
kubernetes
间彧9 小时前
在Docker Compose或Kubernetes中集成Arthas的最佳实践是什么?
kubernetes
岚天start12 小时前
【K8S分配率】Shell脚本计算Kubernetes集群CPU和内存总分配率
云原生·容器·kubernetes·分配率
Connie145112 小时前
Kubernates证书续期操作步骤
kubernetes
帅猛的Shic14 小时前
Kubernetes Service深度解析:为什么Pod需要稳定接入点
kubernetes·go
Hui Baby14 小时前
K8S CCM简介
云原生·容器·kubernetes
星环处相逢14 小时前
Kubernetes PV 与 PVC 深度解析:从基础存储到动态部署实战
云原生·容器·kubernetes
ICT董老师14 小时前
在Ubuntu 22.04上使用GitLab和Jenkins部署CI/CD的完整过程
ubuntu·ci/cd·kubernetes·gitlab·jenkins