openEuler 24.03 (LTS-SP1) 下安装 K8s 集群 + KubeSphere 遇到 etcd 报错的解决方案

目录

openEuler 24.03 (LTS-SP1) 下安装 K8s 集群 + KubeSphere 遇到 etcd 报错的解决方案

🔍 问题背景

🧯 报错成因分析

✅ 解决方案

🔧 修改 etcd 启动配置

🚀 重新部署

📌 建议补充操作

📘 总结


openEuler 24.03 (LTS-SP1) 下安装 K8s 集群 + KubeSphere 遇到 etcd 报错的解决方案

🔍 问题背景

在基于 openEuler 24.03 (LTS-SP1) 安装 Kubernetes + KubeSphere 的过程中,如果目标节点存在残留的 etcd 配置或旧数据目录,kubeadm 会默认尝试以 existing 模式连接 etcd,这会导致如下报错:

[ERROR ExternalEtcdVersion]: Get "https://<etcd-ip>:2379/version": dial tcp <etcd-ip>:2379: connect: connection refused

或者出现 kubeadm 初始化失败,并提示:

error execution phase preflight: [preflight] Some fatal errors occurred:
[ERROR ExternalEtcdVersion]: ...

这是因为 etcd 默认使用了已有集群模式 (ETCD_INITIAL_CLUSTER_STATE=existing),但实际并没有运行中或连接成功的 etcd 实例。


🧯 报错成因分析

默认配置下,etcd 会尝试以已有集群成员身份启动:

ETCD_INITIAL_CLUSTER_STATE=existing

这在节点是首次部署或此前部署已重置的情况下将导致连接失败。etcd 无法完成启动,进而导致整个 kubeadm init 流程失败。


✅ 解决方案

🔧 修改 etcd 启动配置

手动修改 etcd 环境变量配置,指定以“新集群”方式启动:

vi /etc/etcd.env

将原有内容:

ETCD_INITIAL_CLUSTER_STATE=existing

修改为:

ETCD_INITIAL_CLUSTER_STATE=new

保存后退出。


🚀 重新部署

修改完后,重新执行部署流程(如使用 KubeKey 安装)即可正常初始化:

kk create cluster -f config-sample.yaml

或直接使用 kubeadm init 命令,确保 etcd 以新集群身份运行,避免连接失败。


📌 建议补充操作

  • 若此前已使用 kubeadm reset,建议清理以下目录与配置:

    rm -rf /etc/kubernetes /var/lib/etcd /etc/cni/net.d
    iptables -F
    
  • 检查 etcd 日志:

    journalctl -u etcd -f
    
  • 推荐使用 kubeadm config migrate 将旧版配置升级为新版本规范:

    kubeadm config migrate --old-config kubeadm-config.yaml --new-config kubeadm-new.yaml
    

📘 总结

openEuler 24.03 (LTS-SP1) 上部署 K8s 集群 + KubeSphere 时,若 etcd 报 connection refused,很可能是集群状态未正确设置。只需将 ETCD_INITIAL_CLUSTER_STATE 修改为 new,即可解决初始化失败问题。
此操作在自定义安装或重装场景下尤为关键。


如需该文章的 Markdown 或 HTML 格式版本,也可提供。是否需要?

<think>我们正在讨论的是openEuler24.03LTS-SP1系统版本信息的查看方法。根据用户提供的引用内容,用户提到了从22.03升级到24.03的步骤,以及安装24.03时的一些注意事项。用户现在想确认当前系统的发行版本和详细信息。由于用户明确提到了openEuler24.03LTS-SP1,我们可以假设用户可能已经升级或安装了这个版本,或者想要确认当前系统是否是这个版本。在openEuler系统中,查看系统版本信息的方法与其他Linux发行版类似,但也有一些特定的命令或文件。根据之前的知识,我们可以使用以下方法:1.使用`lsb_release-a`命令(如果系统安装了lsb_release)2.查看`/etc/os-release`文件3.使用`hostnamectl`命令(因为openEuler使用systemd)4.查看特定的发行版版本文件,如`/etc/openEuler-release`(如果有的话)但是,请注意,在用户提供的引用[1]中,升级步骤中使用了`dnf`命令,说明openEuler使用dnf作为包管理器,这类似于Fedora/CentOS/RHEL系列。另外,引用[2]提到了在安装过程中设置镜像源为`http://repo.openeuler.org/openEuler-24.03-LTS-SP1/source/`,这也印证了版本号。因此,我们可以这样回答:###查看openEuler24.03LTS-SP1系统版本信息的方法####方法1:查看`/etc/os-release`文件(推荐)```bashcat/etc/os-release```该文件包含操作系统的标识信息。对于openEuler24.03LTS-SP1,输出中会有如下关键行:```NAME="openEuler"VERSION="24.03LTS-SP1"ID="openEuler"...```####方法2:使用`hostnamectl`命令```bashhostnamectl```该命令会显示操作系统的概览信息,包括操作系统名称和版本。输出示例:```Statichostname:openEulerIconname:computer-vmChassis:vmMachineID:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxBootID:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxVirtualization:kvmOperatingSystem:openEuler24.03LTS-SP1Kernel:Linux5.10.0-xxx.oe1.x86_64Architecture:x86-64```####方法3:查看发行版版本文件openEuler通常会在`/etc`目录下放置一个版本文件,可以尝试:```bashcat/etc/openEuler-release```或者```bashcat/etc/system-release```输出示例:```openEulerrelease24.03LTS-SP1```####方法4:使用`lsb_release`命令(如果已安装)如果系统已经安装了`lsb-release`包,则可以使用:```bashlsb_release-a```输出示例:```LSBVersion::core-4.1-amd64:core-4.1-noarchDistributorID:openEulerDescription:openEulerrelease24.03LTS-SP1Release:24.03Codename:LTS-SP1```####方法5:检查内核版本(辅助确认)```bashuname-r```openEuler24.03LTS-SP1的内核版本通常为5.10.x(具体版本可能有所不同),但内核版本只能作为参考,因为内核可以升级。###注意事项-如果上述命令不存在(如`lsb_release`),可能需要安装相应的包。在openEuler中,可以使用`dnf`安装:```bashsudodnfinstalllsb-core```-对于openEuler系统,最直接的方法是查看`/etc/os-release`和`hostnamectl`。###验证示例(针对openEuler24.03LTS-SP1)执行`cat/etc/os-release`,应该会看到类似以下内容(具体以实际系统为准):```NAME="openEuler"VERSION="24.03LTS-SP1"ID="openEuler"ID_LIKE="rhelfedora"VERSION_ID="24.03"PRETTY_NAME="openEuler24.03LTS-SP1"ANSI_COLOR="0;31"...```[^1]:华为欧拉系统升级教程[^2]:OpenEuler安装过程中的镜像源设置§§相关问题§§1.如何升级openEuler系统到最新版本?2.openEuler系统中如何查看内核版本?3.openEuler系统的软件包管理器是什么?</think>### 查看 openEuler 24.03 LTS-SP1 系统版本信息的方法 #### 1. 查看发行版标识文件(推荐) ```bash cat /etc/os-release ``` **输出关键信息示例**: ``` NAME="openEuler" VERSION="24.03 LTS-SP1" ID="openEuler" VERSION_ID="24.03" PRETTY_NAME="openEuler 24.03 LTS-SP1" ANSI_COLOR="0;31" ``` > ✅ 直接显示完整版本号 `24.03 LTS-SP1` 和发行版名称 #### 2. 专用版本文件 ```bash cat /etc/openEuler-release ``` **输出示例**: ``` openEuler release 24.03 LTS-SP1 ``` > ℹ️ 华为欧拉系统的专用标识文件[^1] #### 3. 使用系统管理命令 ```bash hostnamectl ``` **输出关键部分**: ``` Operating System: openEuler 24.03 LTS-SP1 Kernel: Linux 5.10.0-xxx.oe2403sp1.x86_64 Architecture: x86-64 ``` > ⚡ 同时显示操作系统版本和内核信息 #### 4. 内核版本验证 ```bash uname -r ``` **输出示例**: ``` 5.10.0-xxx.oe2403sp1.x86_64 ``` > 🔍 注意内核后缀中的 `oe2403sp1` 标识[^1] #### 5. 包管理器验证 ```bash dnf info openEuler-release ``` **输出关键信息**: ``` Version : 24.03LTS_SP1 Release : 55.oe2403sp1 ``` > 📦 通过系统核心包确认版本[^1] ### 版本标识解读 | 字段 | 含义 | |--------------|--------------------------------| | `24.03` | 2024年3月发布的主版本 | | `LTS` | 长期支持版本 (Long Term Support) | | `SP1` | 首个服务包 (Service Pack 1) | | `oe2403sp1` | 包命名中的版本标识后缀 | ### 注意事项 1. 如果遇到命令不存在: ```bash sudo dnf install lsb-core # 安装基础工具 ``` 2. 升级后验证: ```bash grep "SP1" /etc/os-release && echo "升级成功" ``` 3. 架构确认(重要): ```bash uname -m # x86_64表示64位系统 ``` [^1]: 华为欧拉系统升级教程中的版本标识规范 [^2]: OpenEuler安装过程中的版本验证方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值