rancher~升級v2.6.3之(zhi)后業務集群無法連(lian)rancher的(de)解決方法
參考:
原因
當我們升級自簽名證書安裝的 Rancher Server 到 2.5.10 以上,或 2.6.x 后,cluster-agent/node-agent 有可能會報下面的錯,導致 cluster-agent/node-agent 無法啟動:
x509: certificate relies on legacy Common Name field, use SANs or temporarily enable Common Name matching with GODEBUG=x509ignoreCN=0"
這是因為 Rancher 把 v2.5.10 以(yi)上(shang),或 2.6.x 之后將 go 版(ban)本從 1.14 提(ti)升到了 1.16。而且(qie),go 1.15 版(ban)本開始廢棄(qi) CommonName,推薦使用 SAN 證書,參考: 。 如果你(ni)的自簽名證書中不包含(han) SANs,就會(hui)出現下面的報錯。
錯誤提示
x509: certificate relies on legacy Common Name field, use SANs or temporarily enable Common Name matching with GODEBUG=x509ignoreCN=0"#
解決
方案 1:
- 替換 Rancher HA 證書#
- 使用一鍵生成 ssl 自簽名證書腳本 重新生成證書,然后參考無需重新搭建集群,輕松替換證書替換 Rancher HA 的證書。
方案 2:
添加環境變量 GODEBUG=x509ignoreCN=0#
更新 Rancher Server ,添加環境變量GODEBUG=x509ignoreCN=0
升(sheng)級 Rancher 通過extraEnv設置環境變量(liang)GODEBUG=x509ignoreCN=0,例(li)如(ru):
helm upgrade rancher rancher-latest/rancher \
--namespace cattle-system \
...
--set 'extraEnv[0].name=GODEBUG'\
--set 'extraEnv[0].value=x509ignoreCN=0' \
...
或者,來(lai)添加(jia)環(huan)境變量(liang)
kubectl edit deployment rancher --namespace cattle-system
更新業務集群的 Rancher Agent,添加環境變量GODEBUG=x509ignoreCN=0
編輯(ji)下(xia)游集群,點擊(ji) Add Environmenet Variable,設(she)置環境變量,如(ru)下(xia):
kubectl edit deployment cattle-cluster-agent -n cattle-system
kubectl edit deployment cattle-node-agent -n cattle-system