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

相关推荐
CloudPilotAI12 分钟前
15条 Karpenter 最佳实践,轻松掌握弹性伸缩
kubernetes·弹性伸缩·karpenter
会飞的土拨鼠呀20 分钟前
Flannel是什么,如何安装Flannel
运维·云原生·kubernetes
ether-lin1 小时前
DevOps实战:用Kubernetes和Argo打造自动化CI/CD流程(1)
ci/cd·kubernetes·devops
勇-子3 小时前
K8s 常用资源介绍
云原生·容器·kubernetes
大G哥3 小时前
k8s创建单例redis设置密码
数据库·redis·云原生·容器·kubernetes
勇-子5 小时前
K8s DaemonSet的介绍
云原生·容器·kubernetes
孟里啥都有.5 小时前
12.24 k8s yaml文件类型和介绍
云原生·容器·kubernetes
花晓木5 小时前
最新版本 - 二进制安装k8s1.29.2 集群
云原生·容器·kubernetes
休耕5 小时前
kubeadm搭建k8s集群
云原生·容器·kubernetes
SRExianxian9 小时前
kubernetes存储架构之PV controller源码解读
容器·架构·kubernetes