建設(shè)網(wǎng)站iss/優(yōu)化大師電腦版官網(wǎng)
#記錄一次工作實踐#
故障現(xiàn)象:
本地私有倉庫harbor和控制臺kuboard均無法正常登陸。
解決過程:
1、harbor恢復(fù)過程
通過docker ps -a |grep harbor查看harbor相關(guān)的容器狀態(tài),發(fā)現(xiàn)均顯示啟動狀態(tài),但是倉庫無法訪問。
通過docker-compose ps?查看當(dāng)前服務(wù)狀態(tài),發(fā)現(xiàn)各個組件都是運行狀態(tài)。
本地telnet 命令查看harbor工作端口,發(fā)現(xiàn)端口不通。
分析:可能是harbor相關(guān)的容器運行故障,準(zhǔn)備重新啟動harbor。
docker-compose stop?嘗試停止服務(wù)
命令執(zhí)行正常,但是執(zhí)行之后再次通過docker-compose ps?查看當(dāng)前服務(wù)狀態(tài),發(fā)現(xiàn)各個組件依舊是運行狀態(tài)。----初步結(jié)論:harbor沒有正常停止。
再次通過docker ps -a |grep harbor查看harbor相關(guān)的容器狀態(tài),各個窗口依然是運行狀態(tài)。
執(zhí)行docker rm -f {containerId} 刪除harbor各個組件的容器。
進入到harbor目錄,運行./install.sh重裝harbor容器,發(fā)現(xiàn)報錯,提示https://registry-1.docker.io/v2無法連接,goharbor/prepare鏡像無法獲取。
---------彎路-------------
百度https://registry-1.docker.io/v2無法連接問題怎樣解決
嘗試修改daemon.json文件,修改hosts文件,重啟docker
發(fā)現(xiàn)并沒有用,依舊提示無法與https://registry-1.docker.io/v2建立連接。
在本地電腦上測試,發(fā)現(xiàn)也是一樣的情況(但是本地開梯子之后可以正常連接,于是推斷可能是docker官網(wǎng)屏蔽了國內(nèi)IP的訪問)
此路不通
-----------------------------
在本地開梯子之后,正常拉取到goharbor/prepare鏡像。
執(zhí)行docker save -o <保存的文件名.tar> <鏡像名稱>命令,將本地的鏡像打成tar包。
將tar上傳至服務(wù)器。
在服務(wù)器執(zhí)行docker load -i 保存的文件名.tar,將鏡像加載到服務(wù)器的docker中。
再次進入到harbor目錄,運行./install.sh重裝harbor容器,發(fā)現(xiàn)還是報錯,但是此次錯誤是端口沖突。
通過netstat -anp |grep 沖突端口號,發(fā)現(xiàn)占用此端口的是系統(tǒng)進行rsyslogd,查看配置文件/etc/rsyslog.conf ,將rsyslogd服務(wù)的端口號修改為其它未使用的端口號,保存配置之后執(zhí)行systemctl restart rsyslog重新啟動rsyslog服務(wù)。
再次進入到harbor目錄,運行./install.sh重裝harbor容器,成功。
2、kuboard恢復(fù)過程
通過docker ps -a |grep kuboard,發(fā)現(xiàn)kuboard容器啟動不完整,僅包含kuboard-v3、kuboard-etcd、kuboard三個容器,且kuboard容器沒有正常啟動;kuboard-agent容器沒有正常創(chuàng)建。
嘗試重新啟動kuboard,發(fā)現(xiàn)還是沒有正常啟動kuboard-agent。
進入kuboard-agent安裝目錄,發(fā)現(xiàn)有兩個配置文件:
執(zhí)行命令kubectl delete -f kuboard-v3.yaml,移除現(xiàn)在的kuboard容器。
執(zhí)行kubectl get pods -n kuboard,看到kuboard相關(guān)的pod已經(jīng)全部都沒有了。
執(zhí)行kubectl apply -f kuboard-v3.yaml,重新部署kuboard;
執(zhí)行kubectl apply -f kuboard-agent2.yaml,重新部署kuboard-agent。
kuboard正常啟動。