您好,登錄后才能下訂單哦!
這篇文章主要介紹“Rancher Server常見的問題有哪些”,在日常操作中,相信很多人在Rancher Server常見的問題有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Rancher Server常見的問題有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
需要注意運(yùn)行rancher server容器時(shí),不要使用host模式。程序中有些地方定義的是localhost或者127.0.0.1,如果 容器網(wǎng)絡(luò)設(shè)置為host,將會去訪問宿主機(jī)資源,因?yàn)樗拗鳈C(jī)并沒有相應(yīng)資源,rancher server容器啟動就出錯(cuò)。
PS:docker命令中,如果使用了 --network host參數(shù),那后面再使用-p 8080:8080 就不會生效。
docker run -d -p 8080:8080 rancher/server:stable
此命令僅適用于單機(jī)測試環(huán)境,如果要生產(chǎn)使用Rancher server,請使用外置數(shù)據(jù)庫(mysql)或者通過
-v /xxx/mysql/:/var/lib/mysql -v /xxx/log/:/var/log/mysql -v /xxx/cattle/:/var/lib/cattle
把數(shù)據(jù)掛載到宿主機(jī)上。如果用外置數(shù)據(jù)庫,需提前對數(shù)據(jù)庫做性能優(yōu)化,以保證Rancher運(yùn)行的最佳性能。
你可以通過簡單的Docker命令從Rancher Server容器導(dǎo)出數(shù)據(jù)庫。
docker exec <CONTAINER_ID_OF_SERVER> mysqldump cattle > dump.sql
Rancher的版本位于UI的頁腳的左側(cè)。如果你點(diǎn)擊版本號,將可以查看其他組件的詳細(xì)版本。
如果你的主機(jī)直接被刪除,Rancher Server會一直顯示該主機(jī)。主機(jī)會處于Reconnecting狀態(tài),然后轉(zhuǎn)到
Disconnected狀態(tài)。你也可以通過添加主機(jī)再次把此節(jié)點(diǎn)添加到RANCHER集群,如果不在使用此節(jié)點(diǎn),可以在UI中刪除。
如果你有添加了健康檢查功能的服務(wù)自動調(diào)度到狀態(tài)Disconnected主機(jī)上,CATTLE會將這些服務(wù)重新調(diào)度到其他主機(jī)上。
PS:如果使用了標(biāo)簽調(diào)度,如果你有多臺主機(jī)就有相同的調(diào)度標(biāo)簽,那么服務(wù)會調(diào)度到其他具有調(diào)度標(biāo)簽的節(jié)點(diǎn)上;如果選擇了指定運(yùn)行到某臺主機(jī)上,那主機(jī)刪除后你的應(yīng)用將無法在其他主機(jī)上自動運(yùn)行。
要在代理服務(wù)器后配置主機(jī),你需要配置Docker的守護(hù)進(jìn)程。詳細(xì)說明參考在代理服務(wù)器后添加自定義主機(jī)。
宿主機(jī)上var/lib/rancher/state這個(gè)文件夾,這是Rancher用來存儲用于標(biāo)識主機(jī)的必要信息。
.registration_token中保存了主機(jī)的驗(yàn)證信息,如果里面的信息發(fā)生變化,RANCHER會認(rèn)為這是一臺新主機(jī), 在你執(zhí)行添加主機(jī)后,UI上將會出現(xiàn)另外一臺相同的主機(jī),第一臺主機(jī)接著處于失聯(lián)狀態(tài)。
運(yùn)行docker logs可以查看在Rancher Server容器的基本日志。要獲取更詳細(xì)的日志,你可以進(jìn)入到Rancher Server容器內(nèi)部并查看日志文件。
進(jìn)入 Rancher Server 容器內(nèi)部 docker exec -it <container_id> bash 跳轉(zhuǎn)到 Cattle 日志所在的目錄下 cd /var/lib/cattle/logs/ cat cattle-debug.log
在這個(gè)目錄里面會出現(xiàn)cattle-debug.log和cattle-error.log。如果你長時(shí)間使用此Rancher Server,你會發(fā)現(xiàn)我們每天都會創(chuàng)建一個(gè)新的日志文件。
以下是將Rancher Server日志從容器復(fù)制到主機(jī)的命令。
docker cp <container_id>:/var/lib/cattle/logs /local/path
如果更改了Rancher Server的IP地址,你需要用新的IP重新注冊主機(jī)。
在Rancher中,點(diǎn)擊系統(tǒng)管理->系統(tǒng)設(shè)置更新 Rancher Server的主機(jī)注冊地址。注意必須包括Rancher Server暴露的端口號。默認(rèn)情況下我們建議按照安裝手冊中使用8080端口。
主機(jī)注冊更新后,進(jìn)入基礎(chǔ)架構(gòu)->添加主機(jī)->自定義。添加主機(jī)的docker run命令將會更新。使用更新的命令,在Rancher Server的所有環(huán)境中的所有主機(jī)上運(yùn)行該命令。
很可能有一些任務(wù)由于某些原因而處于僵死狀態(tài),如果你能夠用界面查看系統(tǒng)管理 -> 系統(tǒng)進(jìn)程,你將可以看到Running中的內(nèi)容,如果這些任務(wù)長時(shí)間運(yùn)行(并且失?。?,則Rancher會最終使用太多的內(nèi)存來跟蹤任務(wù)。這使得Rancher Server處于了內(nèi)存不足的狀態(tài)。
為了使服務(wù)變?yōu)榭身憫?yīng)狀態(tài),你需要添加更多內(nèi)存。通常4GB的內(nèi)存就夠了。
你需要再次運(yùn)行Rancher Server命令并且添加一個(gè)額外的選項(xiàng)-e JAVA_OPTS="-Xmx4096m"
docker run -d -p 8080:8080 --restart=unless-stopped -e JAVA_OPTS="-Xmx4096m" rancher/server
根據(jù)MySQL數(shù)據(jù)庫的設(shè)置方式的不同,你可能需要進(jìn)行升級才能添加該選項(xiàng)。
如果是由于缺少內(nèi)存而無法看到系統(tǒng)管理 -> 系統(tǒng)進(jìn)程的話,那么在重啟Rancher Server之后,已經(jīng)有了更多的內(nèi)存。你現(xiàn)在應(yīng)該可以看到這個(gè)頁面了,并可以開始對運(yùn)行時(shí)間最長的進(jìn)程進(jìn)行故障分析。
Rancher Server會自動清理幾個(gè)數(shù)據(jù)庫表,以防止數(shù)據(jù)庫增長太快。如果對你來說這些表沒有被及時(shí)清理,請使用API來更新清理數(shù)據(jù)的時(shí)間間隔。
在默認(rèn)情況下,產(chǎn)生在2周以前的container_event和service_event表中的數(shù)據(jù)則數(shù)據(jù)會被刪除。在API中的設(shè)置是以秒為單位的(1209600)。API中的設(shè)置為events.purge.after.seconds。
默認(rèn)情況下,process_instance表在1天前產(chǎn)生的數(shù)據(jù)將會被刪除,在API中的設(shè)置是以秒為單位的(86400)。API中的設(shè)置為process_instance.purge.after.seconds。
為了更新API中的設(shè)置,你可以跳轉(zhuǎn)到http://<rancher-server-ip>:8080/v1/settings頁面,搜索要更新的設(shè)置,點(diǎn)擊links -> self跳轉(zhuǎn)到你點(diǎn)擊的鏈接去設(shè)置,點(diǎn)擊側(cè)面的“編輯”更改’值’。請記住,值是以秒為單位。
如果你剛開始運(yùn)行Rancher并發(fā)現(xiàn)它被永久凍結(jié),可能是liquibase數(shù)據(jù)庫上鎖了。在啟動時(shí),liquibase執(zhí)行模式遷移。它的競爭條件可能會留下一個(gè)鎖定條目,這將阻止后續(xù)的流程。
如果你剛剛升級,在Rancher Server日志中,MySQL數(shù)據(jù)庫可能存在尚未釋放的日志鎖定。
....liquibase.exception.LockException: Could not acquire change log lock. Currently locked by <container_ID>
釋放數(shù)據(jù)庫鎖
注意:請不要釋放數(shù)據(jù)庫鎖,除非有相關(guān)日志鎖的異常。如果是由于數(shù)據(jù)遷移導(dǎo)致升級時(shí)間過長,在這種情況下釋放數(shù)據(jù)庫鎖,可能會使你遇到其他遷移問題。
如果你已根據(jù)升級文檔創(chuàng)建了Rancher Server的數(shù)據(jù)容器,你需要exec到rancher-data容器中升級DATABASECHANGELOGLOCK表并移除鎖,如果你沒有創(chuàng)建數(shù)據(jù)容器,你用exec到包含有你數(shù)據(jù)庫的容器中。
sudo docker exec -it <container_id> mysql
一旦進(jìn)入到 Mysql 數(shù)據(jù)庫,你就要訪問cattle數(shù)據(jù)庫。
如果你的身份認(rèn)證出現(xiàn)問題(例如管理員密碼忘記),則可能無法訪問Rancher。要重新獲得對Rancher的訪問權(quán)限,你需要在數(shù)據(jù)庫中關(guān)閉訪問控制。為此,你需要訪問運(yùn)行Rancher Server的主機(jī)。
ps:假設(shè)在重置訪問控制之前有創(chuàng)建過其他用戶,那么在認(rèn)證方式?jīng)]有變化的情況下,重置訪問控制除了超級管理員(第一個(gè)被創(chuàng)建的管理員,ID為1a1),其他用戶賬號信息不會受影響。
假設(shè)數(shù)據(jù)庫為rancher內(nèi)置數(shù)據(jù)庫
docker exec -it <rancher_server_container_ID> mysql
注意: 這個(gè) <rancher_server_container_ID>是具有Rancher數(shù)據(jù)庫的容器。如果你升級并創(chuàng)建了一個(gè)Rancher數(shù)據(jù)容器,則需要使用Rancher數(shù)據(jù)容器的ID而不是Rancher Server容器,rancher內(nèi)置數(shù)據(jù)庫默認(rèn)密碼為空。
選擇Cattle數(shù)據(jù)庫。
mysql> use cattle;
查看setting表。
mysql> select * from setting;
更改api.security.enabled為false,并清除api.auth.provider.configured的值。
確認(rèn)更改在setting表中是否生效。
mysql> select * from setting;
可能需要約1分鐘才能在用戶界面中關(guān)閉身份認(rèn)證,然后你可以通過刷新網(wǎng)頁來登陸沒有訪問控制的Rancher Server。
關(guān)閉訪問控制后,任何人都可以使用UI/API訪問Rancher Server。
刷新頁面,在系統(tǒng)管理/訪問控制 重新開啟訪問控制。重新開啟訪問控制填寫的管理員用戶名將會替換原有的超級管理員用戶名(ID為1a1 )。
在高可用集群中,如果你正在使用代理服務(wù)器后,如果rancher-compose-executor和go-machine-service不斷重啟,請確保你的代理使用正確的協(xié)議。
Go-machine-service是一種通過websocket連接到Rancher API服務(wù)器的微服務(wù)。如果無法連接,則會重新啟動并再次嘗試。如果你運(yùn)行的是單節(jié)點(diǎn)的Rancher Server,它將使用你為主機(jī)注冊地址來連接到Rancher API服務(wù)。檢查從Rancher Sever容器內(nèi)部是否可以訪問主機(jī)注冊地址。
docker exec -it <rancher-server_container_id> bash 在 Rancher-Server 容器內(nèi) curl -i <Host Registration URL you set in UI>/v1
你應(yīng)該得到一個(gè)json響應(yīng)。如果認(rèn)證開啟,響應(yīng)代碼應(yīng)為401。如果認(rèn)證未打開,則響應(yīng)代碼應(yīng)為200。 驗(yàn)證Rancher API Server 能夠使用這些變量,通過登錄go-machine-service容器并使用你提供給容器的參數(shù)進(jìn)行curl命令來驗(yàn)證連接:
docker exec -it <go-machine-service_container_id> bash 在go-machine-service 容器內(nèi) curl -i -u '<value of CATTLE_ACCESS_KEY>:<value of CATTLE_SECRET_KEY>' <value of CATTLE_URL>
你應(yīng)該得到一個(gè)json響應(yīng)和200個(gè)響應(yīng)代碼。如果curl命令失敗,那么在go-machine-service和Rancher API server之間存在連接問題。如果curl命令沒有失敗,則問題可能是因?yàn)間o-machine-service嘗試建立websocket連接而不是普通的http連接。如果在go-machine-service和Rancher API服務(wù)器之間有代理或負(fù)載平衡,請驗(yàn)證代理是否支持websocket連接。
http://X.X.X.X/v1/settings/catalog.refresh.interval.seconds 默認(rèn)300秒,可以修改,點(diǎn)setting會立即更新。
到此,關(guān)于“Rancher Server常見的問題有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。