小小故障集

Error response from daemon: login attempt to http://127.0.0.1/v2/ failed with status: 502 Bad Gateway

报上述错误,找不到网关。
我在使用docker login 127.0.0.1 登录harbor时,提示
原因在于,我在部署完后,重启了一下docker服务,导致本地的hardor的7个容器有一些处于关闭状态,将这些容器开启在登录即可。
在这里插入图片描述
将这些关闭的容器运行,再次本地127.0.0.1登录

————————————————————————————————————————————————
WARNING: IPv4 forwarding is disabled. Networking will not work.

再部署docker时,设置映射端口时出现的报错。原因是,ip转发未开启。
只需在
在这里插入图片描述
开启ip转发的功能,即可开始端口的映射功能。

————————————————————————————————————————————————————

在部署k8s单接点时,遇到了一个问题。就是master获取node接点的信息时,一开始是检测到,还没有同意。后来同意后i,出现了,已批准node节点的加入,但是没有发行的问题。我一遍一遍的查看组件是否已启动。后来才发现,在启动scheduler服务时,将master节点的ip输进去了。在回头检查脚本时发现,启动scheduler服务和manager服务时,后面的ip地址为127.0.0.1地址。为本机回环地址。虽然是个小错误、但是这也代表是服务的错误,服务在正常运行,但是启动时的配置也导致了失败。最终还是服务的问题。问题的出现,与服务的错误是相关联的。

——————————————————————————————————————————————————————
重启了整个k8s集群后出现的问题发现使用kubectl获取nodes时显示出的是 NotReady
[root@localhost k8s]# kubectl get nodes
NAME             STATUS     ROLES    AGE   VERSION
192.168.226.40   NotReady   <none>   22h   v1.12.3
192.168.226.50   NotReady   <none>   22h   v1.12.3

一开始我以为是组件服务没启动,我一一检查后发现没问题。我去查看node节点的日志发现是与我配置的虚拟ip没有连接,显示拒绝连接。很显然是我的nginx+Keepalived节点出现了问题,我在负载节点上查看nginx,nginx居然启动不了,我先是查看配置文件,发现没问题。后来才想到。我的整个集群是重启了,我的核心防护也就清除了。
在这里插入图片描述

Check on service [192.168.201.100]:443 failed after 3 retry.

在nginx服务节点关闭核心防护后,再启动nginx。

setenforce 0

发现nginx已经启动了,再去master节点查看
在这里插入图片描述
发现node已经获取了。原因是,我将node的apiserver服务连接到了,这个虚拟IP上。而我nginx服务节点的核心防护没有关闭,导致node的apiserver服务无法连接。当然,我从nginx服务没有正常启动找到的这个问题,原则上来说,这个问题与nginx没有关系。我只是借助nginx的服务故障,发现了真正的隐藏问题。一定要注意,防火墙和核心防护。

永久关闭核心防护

修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可

分界线——————————————————————————————

今天我刚部署完k8s,下去上个厕所。回来发现,电脑突然重启了。一下子就蒙了,无缘无故重启了。淦。
重新连上终端,发现,在访问节点时报错,
The connection to the server 192.168.253.10:6443 was refused - did you specify the right host or port?
提示我6443端口无法连接,用docker命令查看一下果然,apiserver没启动。etcd也没启动。老手一看就知道。etcd没启动。就知道问题了。我不一样,我还很新。
我关闭了swap交换分区,也没用,还是报错。
最后才找到错误。
当虚拟机非正常关机后,k8s无法启动,且关闭交换分区也不能解决时。而且容器etcd也没有启动。
那么,就是你的etcd出错了,导致数据有问题,apiserver无法连接。直接备份etcd容器里的数据。

cd /var/lib/
cd etcd/member
mkdir ../bak
mv * ../bak/

将member里的数据清空
再去启动容器,先启动etcd,再去启动apiserver容器。
最后就可以了。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值