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