我花了一段時間才弄明白這一點。它實際上不是模板或Galera集羣本身的問題。 這個問題在rancher/docker在環境中獲取IP的方式之內。原因在於Ubuntu默認使用dns服務器作爲本地地址127.0.0.1,並且是按照設計進行的。問題是Docker容器無法在127.0.0.1中查找。
請參閱的/etc/resolv.conf文件
下進行測試:
docker run -it ubuntu bash
apt update
apt install dnsutils
# This will not respond
dig @127.0.0.1 your.hostname.com
注:中國平安將正常工作,並能欺騙你認爲名字解析工作。挖掘是一種正確的方式。
您還可以使用牧場主CLI來獲取問題的一個提示:
mkdir -p support
rancher hosts -a > support/hosts
rancher logs --tail=-1 ipsec/ipsec > support/ipsec 2>&1
rancher logs --tail=-1 network-services/metadata > support/metadata 2>&1
rancher logs --tail=-1 network-services/network-manager > support/network-manager 2>&1
解決方案:
解決辦法有兩個:
1 - 配置Ubuntu的使用其他域名服務器像谷歌公共dns(8.8.8.8,8.8.4.4)。我試過這個,對於一個簡單的改變來說太複雜了,正如所說的,ubuntu使用這種設計。
2 - 更改docker dns服務器。這對我來說工作得很好。您可以編輯或創建文件/etc/docker/daemon.json和放線:
{
"dns": ["8.8.8.8", "8.8.4.4"]
}
停止容器並重新啓動守護程序:
docker stop $(docker ps -q)
docker stop $(docker ps -q) # yes twice :-) rancher will try do restart your dying containers
systemctl restart docker
非常感謝Giovanni
如果你將所有的Galera節點放在同一臺服務器上,請解釋你希望獲得什麼。 –
你好瑞克,感謝你的興趣。我想擴展兩臺主機上的集羣節點。我希望獲得速度(減少主系統的工作量)。擴展到兩個主機應該很容易 - 但我無法弄清楚錯誤在哪裏。 – Pixelartist
同一物理服務器上的兩個Galera節點:您在I/O中沒有獲得任何東西,可能由於具有較小的緩存和冗餘I/O而丟失某些內容。此外,現在每個寫入都必須在同一物理服務器上寫入兩次,從而增加了I/O負載。 –