CentOS7安装k3s时curl访问GitHub触发NSS error -5961连接重置问题
问题原因
该curl: (35) TCP connection reset by peer报错为TCP连接被对端主动重置,结合场景主要有三类触发原因:
- 国内网络环境对GitHub的访问存在链路限制,通信过程中被防火墙或运营商主动切断连接,是该场景下最常见的原因
- 虚拟机所在网络的出口防火墙、安全组规则,限制了访问GitHub 443端口的流量
- CentOS 7.9自带的NSS(网络安全服务)包版本过低,对GitHub使用的新版TLS握手协议兼容性不足,握手阶段触发连接重置
解决办法
优先按从易到难的顺序尝试以下方案:
方案1:使用k3s国内镜像源安装(推荐)
直接替换官方安装脚本为国内镜像源,全程不需要访问GitHub,可避开网络限制问题,执行修改后的安装命令即可:
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_VERSION=v1.18.9+k3s1 sh -s - server --datastore-endpoint="mysql://user:password@tcp(x.x.x.x:3306)/database_name"
方案2:更新系统基础组件解决TLS兼容问题
如果是系统证书、NSS版本过低导致的握手失败,执行以下命令更新对应组件后重试安装即可:
yum update -y nss ca-certificates curl
方案3:配置代理后安装
如果虚拟机可通过代理访问外网,执行安装命令前先配置系统代理变量,再执行原安装命令:
export http_proxy=http://<代理地址>:<代理端口> export https_proxy=http://<代理地址>:<代理端口> curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.18.9+k3s1 sh -s - server --datastore-endpoint="mysql://user:password@tcp(x.x.x.x:3306)/database_name"
方案4:离线安装
在可正常访问GitHub的设备上提前下载对应版本的k3s二进制文件、sha256校验文件,上传到虚拟机的/usr/local/bin目录,给k3s二进制文件添加可执行权限后,手动执行初始化配置即可,无需走在线下载流程。
内容的提问来源于stack exchange,提问作者The Story Teller Nepal
相关产品推荐
相关产品推荐

