如何解決 kubernetes pod 上的“Bad Certificate”錯誤?
我正在嘗試設置一個 kubernetes pod,以便它連接到設備,特別是 F5 BIG-IP 設備。
部署似乎沒問題,實際上我不得不修改我在網上找到的程式碼片段。
當 Pod 嘗試啟動時,出現錯誤。於是我開始了我的調查:
執行
kubectl logs <pod_name> -n <namespace>
返回錯誤:
REST call error: Get <URL>: x509: cannot validate certificate for <IP> because it doesn't contain any IP SANs
通過查看界面上的 wireshark 轉儲,我發現有一個 TLS 1.2 警報(致命),其中包含從客戶端發送到伺服器的“錯誤證書”的描述。
所以我上網查了一下,發現有文章說是kubernetes 嘗試連接伺服器但沒有辨識的問題——至少我認為他們是這個意思。建議的解決方法之一是應用 DNS 名稱,因此我修改了
/etc/hosts
文件以便在部署 YAML 文件中使用 DNS 名稱。結果是錯誤消息變為:
REST call error: Get <URL>: dial tcp: lookup <hostname>: device or resource busy
關於問題可能是什麼以及如何解決它的任何想法?
這是一個測試環境,所以我不介意——讓我說——“非正統”的方法,例如忽略證書檢查,但如果有解決方案或解決方法我最終可以投入生產,我將不勝感激。
感謝您提供的任何意見。
我發現了這個問題。似乎可以在部署 YAML 文件中設置一個
--insecure=true
標誌。這迫使設備不檢查證書,並成功連接到 F5 設備。
修改證書,並添加一個 IP 地址,作為除了您的 DNS 名稱 SANS 之外的 SAN
請參閱隨附的螢幕截圖。