我在 K8S 集群中有 PODS(服务器和客户端),它们使用 SSL/套接字进行通信。 服务器 POD 附加了服务。 因此,每当客户端 POD 出现时,都会将 SERVER_SERVICE_HOST 和 SERVER_SERVICE_PORT 环境变量添加到客户端 POD。 它在没有 SSL 的情况下工作正常。但是当使用 SSL 时 SSL 握手错误来了 因为客户端在 SSL 证书中获取主机名,但 SERVER_SERVICE_HOST 中有 IP 地址。 有没有办法让 K8S 在 SERVER_SERVICE_HOST 中填写主机名而不是 IP 地址?
最佳答案
补充前面的答案,您可以通过简单地在 pod 的规范中设置环境变量 adding them to the YAML definition of the pod .
根据您的问题,我的印象是 SERVER_SERVICE_HOST
和 SERVER_SERVICE_PORT
包含在您正在部署的 YAML 定义中。您可以在定义中更改它们。
另外要记住的是,集群中的所有对象都依赖于 internal DNS records。在 coreDNS 或 kube-dns 中设置,这些记录是 automatically generated并添加到每个 pod 的 resolv.conf 文件中。
如果您的 SSL 身份验证依赖于特定的、证书绑定(bind)的主机名,那么考虑这一点很重要,因为这些可能与您期望的不同。
关于ssl - 如何在 K8S 中配置服务以在 *_SERVICE_HOST 变量中设置主机名而不是 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57002734/