我正在尝试设置一个 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