k8s 1.23升级1.24

0、简介

这里只用3台服务器来做一个简单的集群,当前版本是1.23.17目标升级到1.24.17

地址主机名
192.168.160.40kuber-master-1
192.168.160.41kuber-master-2
192.168.160.42kuber-node-1

我这里设置的master2可调度pod,将master2的污点去掉

kubectl describe nodes node | grep Taint

kubectl taint nodes kuber-master-2 node-role.kubernetes.io/master:NoSchedule-

版本对应关系

containerd对应

https://containerd.io/releases/

ingress对应

https://github.com/kubernetes/ingress-nginx

当前ingress1.4.0,先升级集群到1.25

升级ingress到1.9.6,升级集群到1.30

升级ingress到1.12.1 

calico对应

System requirements | Calico Documentation

升级calico到3.24

1、升级calico

这里旧版本的calico是3.20,先升级到3.24版本。

curl https://raw.githubusercontent.com/projectcalico/calico/v3.24.5/manifests/calico.yaml -o calico.yaml

下载3.24版本,直接进行apply操作,会对旧版本覆盖。

kubectl apply -f calico.yam

2、升级k8s版本--master执行

(1)升级kubeadm

yum install -y kubeadm-1.24.17-0 --disableexcludes=kubernetes

kubeadm version 查看当前kubeadm的版本

(2)查看执行计划

kubeadm upgrade plan

(3)修改runtime

kubectl edit nodes kuber-master-1

kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.sock

修改为

kubeadm.alpha.kubernetes.io/cri-socket: unix:///var/run/containerd/containerd.sock

(4)配置containerd修改默认Cgroup驱动

containerd config default > /etc/containerd/config.toml

sed -i 's#SystemdCgroup = false#SystemdCgroup = true#g' /etc/containerd/config.toml

vim /var/lib/kubelet/kubeadm-flags.env

KUBELET_KUBEADM_ARGS="--network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.6"

修改为

KUBELET_KUBEADM_ARGS="--pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.6 --container-runtime=remote --container-runtime-endpoint=unix:///run/containerd/containerd.sock"

systemctl daemon-reload

systemctl restart containerd #重启containerd

systemctl restart kubelet #重启kubelet

(5)定义 crictl 如何连接到容器运行时

cat >/etc/crictl.yaml<<EOF
runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock
timeout: 10
debug: false
EOF

# 加载
systemctl daemon-reload
systemctl restart containerd

(6)开始升级

kubeadm upgrade apply v1.24.17

(7)升级kubelet和kubectl

kubectl drain k8s-master01 --ignore-daemonsets

yum -y install kubelet-1.24.17 kubectl-1.24.17

systemctl daemon-reload

systemctl restart kubelet

kubectl uncordon k8s-master01

(8)升级其他控制节点

不需要执行kubeadm upgrade plan
kubeadm upgrade node

替换 kubeadm upgrade apply
其他流程一样。

3、升级k8s版本--node执行

yum -y install kubeadm-1.24.17

驱逐node上的pod

kubectl drain  k8s-node-01  --ignore-daemonsets

同master一样修改运行时和配置

做完1-5步就行

kubeadm upgrade node

升级kubelet和kubectl

kubectl drain k8s-node-01 --ignore-daemonsets

yum -y install kubelet-1.24.17 kubectl-1.24.17

systemctl daemon-reload

systemctl restart kubelet

kubectl uncordon k8s-node-01

<think>好的,我现在需要回答用户关于Kubernetes 1.23兼容的KubeSphere版本的问题。首先,我得确认KubeSphere的各个版本与Kubernetes的兼容性,特别是1.23版本。 用户之前的问题是关于Ceph-CSI与传统Ceph存储的区别,现在转向KubeSphere版本兼容性,可能需要更详细的版本对应信息。我需要先回忆或查找KubeSphere的官方文档,看看他们支持的Kubernetes版本。 记得KubeSphere通常会支持多个Kubernetes版本,每个KubeSphere版本对应特定的Kubernetes补丁版本。例如,KubeSphere v3.3可能支持Kubernetes 1.22到1.24,但需要具体查看。需要确定哪些KubeSphere版本明确支持K8s 1.23。 可能还需要注意,KubeSphere安装时可能会附带特定版本的Kubernetes,或者允许用户使用已有的Kubernetes集群。如果是后者,用户需要确保KubeSphere版本与现有K8s 1.23集群兼容。 此外,Kubernetes 1.23已经移除了很多in-tree的存储插件,所以用户如果使用旧版存储方案,可能需要考虑CSI驱动,如之前讨论的Ceph-CSI。不过当前问题只是版本兼容性,不是存储部分。 我需要查阅KubeSphere的官方发布说明或兼容性矩阵。例如,KubeSphere v3.3.x可能支持K8s 1.22-1.24,而v3.4可能支持更高版本。但具体到1.23,可能多个KubeSphere版本都兼容。 另外,用户可能想知道推荐的KubeSphere版本,或者是否有已知的问题。需要指出用户应参考官方文档,并给出一般性建议,如使用较新的KubeSphere版本以获得更好的兼容性和支持。 可能的步骤: 1. 确认KubeSphere各版本支持的Kubernetes版本。 2. 确定哪些KubeSphere版本明确支持K8s 1.23。 3. 建议用户查看官方文档,并推荐较新的稳定版本。 4. 提醒升级注意事项,如备份、测试环境等。 现在需要确保信息准确,避免提供错误的版本对应关系。例如,KubeSphere 3.3.2可能支持K8s 1.23.5,而3.4.0可能支持更高版本。但需要准确的数据。</think>以下是Kubernetes 1.23兼容的KubeSphere版本及其关键信息: --- ### **KubeSphere版本与Kubernetes 1.23的兼容性** 根据KubeSphere官方文档和发布说明,以下版本明确支持Kubernetes 1.231. **KubeSphere v3.3.x** - **支持的Kubernetes版本**:1.20.x、1.21.x、1.22.x、1.23.x - **说明**: - 推荐使用Kubernetes **1.23.5+**(兼容性最佳)。 - 需通过[KubeKey](https://github.com/kubesphere/kubekey)工具部署,支持将Kubernetes 1.23作为底层集群安装。 - 需注意:KubeSphere v3.3.x的默认安装可能附带Kubernetes 1.22.x,需手动指定Kubernetes版本为1.23。 2. **KubeSphere v3.4.x** - **支持的Kubernetes版本**:1.22.x、1.23.x、1.24.x、1.25.x - **说明**: - 完全兼容Kubernetes 1.23,推荐使用较新的KubeSphere v3.4.1+版本。 - 支持在现有Kubernetes 1.23集群上[直接部署KubeSphere](https://kubesphere.io/zh/docs/v3.4/quick-start/minimal-kubesphere-on-k8s/)。 --- ### **选择建议** 1. **新部署场景**: - 建议直接使用**KubeSphere v3.4.x**,因其支持更多Kubernetes新版本(如1.24-1.25),并为未来升级留出空间。 - 若需长期使用Kubernetes 1.23,可选择**v3.4.1**(稳定版)。 2. **已有Kubernetes 1.23集群**: - 可在现有集群上部署**KubeSphere v3.4.x**,无需重建底层K8s。 3. **旧版本升级**: - 若从KubeSphere v3.3.x升级到v3.4.x,需参考[官方升级指南](https://kubesphere.io/zh/docs/v3.4/upgrade/),注意兼容性检查。 --- ### **注意事项** 1. **版本依赖**: - KubeSphere的部分功能(如日志、监控)依赖Kubernetes版本,需确保组件(如Metrics Server、CoreDNS)兼容性。 2. **存储与网络插件**: - Kubernetes 1.23已废弃部分in-tree存储驱动(如GlusterFS),建议使用CSI插件(如Ceph-CSI)。 - 网络插件需兼容Kubernetes 1.23(如Calico v3.22+、Flannel v0.19+)。 3. **已知问题**: - 在Kubernetes 1.23中,若使用Containerd运行时,需确保版本≥1.6.8(避免[已知漏洞](https://github.com/containerd/containerd/releases))。 - KubeSphere v3.3.x的Istio组件需升级1.15+以兼容K8s 1.23。 --- ### **兼容性验证步骤** 若需在现有Kubernetes 1.23集群上部署KubeSphere,可按以下步骤验证: 1. **检查K8s集群状态**: ```bash kubectl version --short kubectl get nodes # 确保所有节点状态为Ready ``` 2. **部署KubeSphere**: ```bash kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.1/kubesphere-installer.yaml kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.1/cluster-configuration.yaml ``` 3. **查看安装日志**: ```bash kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f ``` --- ### **总结** | **KubeSphere版本** | **兼容的K8s 1.23版本** | **推荐场景** | |--------------------|------------------------|-----------------------------| | v3.3.x | 1.23.5+ | 保守升级,已有v3.3环境维护 | | v3.4.x | 全版本兼容 | 新部署或长期维护 | 建议优先选择**KubeSphere v3.4.x**,并参考[官方兼容性矩阵](https://kubesphere.io/zh/docs/v3.4/installing-on-kubernetes/introduction/requirements/)获取最新信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值