問題:Confd 啓動時報 "user name is empty"的錯
後端存儲:etcdv3 (開啓Basic Auth認證)
confd版本:confd-0.16.0-linux-amd64
這個報錯會在以下三種情況下出現:
1、confd啓動時沒有加-username 、-password和-basic-auth選項
confd -log-level debug -watch -backend etcdv3 -node http://127.0.0.1:2379
2、confd啓動時只加了-username 、-password選項,沒加-basic-auth
confd -log-level debug -watch -backend etcdv3 -node http://127.0.0.1:2379 -username root -password fac3f780831f8._
3、confd啓動參數放在配置文件中時,基本認證寫成了basic-auth=true,應該是basic_auth=true。
這有點奇怪,按道理關鍵字無論是終端下和配置文件中都是一樣的
confd -config-file=/etc/confd/confd.conf
/etc/confd/confd.conf:
backend="etcdv3"
nodes=[
"http://127.0.0.1:2379",
]
watch=true
prefix="/"
confdir="/etc/confd"
log-level="info"
basic-auth=true
username="root"
password="fac3f780831f8._"
解決方案
對於1和2:啓動時同時添加-basic-auth、-username和-password三個選項
confd -log-level debug -watch -backend etcdv3 -node http://127.0.0.1:2379 -basic-auth -username root -password fac3f780831f8._
對於3:將配置文件中的basic-auth改成basic_auth
/etc/confd/confd.conf:
backend="etcdv3"
nodes=[
"http://127.0.0.1:2379",
]
watch=true
prefix="/"
confdir="/etc/confd"
log-level="info"
basic_auth=true
username="root"
password="fac3f780831f8._"
成功運行的效果:
至此問題解決!