自学内容网 自学内容网

记K8s组件harbor和kuboard故障恢复

#记录一次工作实践#

故障现象:

本地私有仓库harbor和控制台kuboard均无法正常登陆。

解决过程:

1、harbor恢复过程

通过docker ps -a |grep harbor查看harbor相关的容器状态,发现均显示启动状态,但是仓库无法访问。

通过docker-compose ps 查看当前服务状态,发现各个组件都是运行状态。

本地telnet 命令查看harbor工作端口,发现端口不通。

分析:可能是harbor相关的容器运行故障,准备重新启动harbor。

docker-compose stop 尝试停止服务

命令执行正常,但是执行之后再次通过docker-compose ps 查看当前服务状态,发现各个组件依旧是运行状态。----初步结论:harbor没有正常停止。

再次通过docker ps -a |grep harbor查看harbor相关的容器状态,各个窗口依然是运行状态。

执行docker rm -f {containerId} 删除harbor各个组件的容器。

进入到harbor目录,运行./install.sh重装harbor容器,发现报错,提示https://registry-1.docker.io/v2无法连接,goharbor/prepare镜像无法获取。

---------弯路-------------

百度https://registry-1.docker.io/v2无法连接问题怎样解决

尝试修改daemon.json文件,修改hosts文件,重启docker

发现并没有用,依旧提示无法与https://registry-1.docker.io/v2建立连接。

在本地电脑上测试,发现也是一样的情况(但是本地开梯子之后可以正常连接,于是推断可能是docker官网屏蔽了国内IP的访问)

此路不通

-----------------------------

在本地开梯子之后,正常拉取到goharbor/prepare镜像。

执行docker save -o <保存的文件名.tar> <镜像名称>命令,将本地的镜像打成tar包。

将tar上传至服务器。

在服务器执行docker load -i 保存的文件名.tar,将镜像加载到服务器的docker中。

再次进入到harbor目录,运行./install.sh重装harbor容器,发现还是报错,但是此次错误是端口冲突。

通过netstat -anp |grep 冲突端口号,发现占用此端口的是系统进行rsyslogd,查看配置文件/etc/rsyslog.conf ,将rsyslogd服务的端口号修改为其它未使用的端口号,保存配置之后执行systemctl restart rsyslog重新启动rsyslog服务。

再次进入到harbor目录,运行./install.sh重装harbor容器,成功。

2、kuboard恢复过程

通过docker ps -a |grep kuboard,发现kuboard容器启动不完整,仅包含kuboard-v3、kuboard-etcd、kuboard三个容器,且kuboard容器没有正常启动;kuboard-agent容器没有正常创建。

尝试重新启动kuboard,发现还是没有正常启动kuboard-agent。

进入kuboard-agent安装目录,发现有两个配置文件:

执行命令kubectl delete -f kuboard-v3.yaml,移除现在的kuboard容器。

执行kubectl get pods -n kuboard,看到kuboard相关的pod已经全部都没有了。

执行kubectl apply -f kuboard-v3.yaml,重新部署kuboard;

执行kubectl apply -f kuboard-agent2.yaml,重新部署kuboard-agent。

kuboard正常启动。


原文地址:https://blog.csdn.net/Yushl_sirius/article/details/142431967

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!