sealos version compare error

前言 最近在使用 sealos 安装更新 k8s 的过程中发现了一个问题: nfo new cluster version v1.25.10 behind the current version v1.25.8。 现在我来简单描述下过程: 我想要将 k8s 版本从 v1.25.8 升级到 v1.25.10,运行更新命令: sealos run labring/kubernetes:v1.25.10-4.2.0 -f 后,出现了以下错误信息: 2023-06-09T11:30:06 info new cluster version v1.25.10 behind the current version v1.25.8 ,通过对错误信息的理解,发现提示 v1.25.10 版本比 v1.25.8小,通过我对版本号的理解,这应该是个错误。 发现及解决问题 发现了问题,接下来要寻找出现问题的代码和解决问题。通过 Github 的代码搜索功能搜索关键字 behind the current version 顺利找到问题代码所在。 对找到的代码进行分析,发现是 versionutil.Compare(curversion, version) 方法出现了错误,我们来看看这个函数的代码: func Compare(v1, v2 string) bool { v1 = strings.Replace(v1, "v", "", -1) v2 = strings.Replace(v2, "v", "", -1) v1 = strings.Split(v1, "-")[0] v2 = strings.Split(v2, "-")[0] v1List := strings.Split(v1, ".") v2List := strings.Split(v2, ".") if len(v1List) != 3 || len(v2List) != 3 { logger.Error("error version format %s %s", v1, v2) return false } if v1List[0] > v2List[0] { return true } else if v1List[0] < v2List[0] { return false } if v1List[1] > v2List[1] { return true } else if v1List[1] < v2List[1] { return false } if v1List[2] >= v2List[2] { return true } return false } 通过对代码的分析,发现是对主次修订版本号对比时出现了问题,代码中是简单的使用了字符串比较,字符串数字比较会以字典序进行比较,所以会出现 “8” 大于 “10"的情况。正常的数字比较应该是将字符串转为数字进行相应比较。 ...

六月 10, 2023 · overstarry

使用sealos部署Kubernetes集群

今天介绍使用 sealos 一键部署 Kubernetes 集群, sealos 是只能用丝滑一词形容的kubernetes高可用安装(kubernetes install)工具,一条命令,离线安装,包含所有依赖,内核负载不依赖haproxy keepalived,纯golang开发,99年证书,支持v1.20.0 v1.19.5 v1.18.13 v1.17.15! sealos 支持的环境 Linux 发行版, CPU架构 Debian 9+, x86_64/ arm64 Ubuntu 16.04, 18.04, 20.04, x86_64/ arm64 Centos/RHEL 7.6+, x86_64/ arm64 其他支持 systemd 的系统环境. x86_64/ arm64 Kylin arm64 kubernetes 版本 1.16+ 1.17+ 1.18+ 1.19+ 1.20+ 1.21+ 1.22+ 要求和建议 最低资源要求 2 vCpu 4G Ram 40G+ 存储 操作系统要求 ssh 可以访问各安装节点 各节点主机名不相同,并满足kubernetes的主机名要求。 各节点时间同步 网卡名称如果是不常见的,建议修改成规范的网卡名称, 如(eth.|en.|em.*) kubernetes1.20+ 使用containerd作为cri. 不需要用户安装docker/containerd. sealos会安装1.3.9版本containerd。 kubernetes1.19及以下 使用docker作为cri。 也不需要用户安装docker。 sealos会安装1.19.03版本docker 网络和 DNS 要求: ...

十月 26, 2021 · overstarry