ssl - 如何在 K8S 中配置服务以在 *_SERVICE_HOST 变量中设置主机名而不是 IP 地址

标签 ssl service kubernetes

我在 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_HOSTSERVER_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/

相关文章:

amazon-web-services - 我在 AWS SSL Activate 上使用时出现错误?

c++ - Windows 服务问题(C++、WinAPI)

Android 小部件 + 服务

kubernetes - K8s/Helm-如何根据value属性挂载音量?

docker - 减少 kubernetes 持久卷

flash - Adobe AIR 中的 SSL 客户端证书身份验证

ruby-on-rails - OpenShift Web SSL 配置区域在哪里?

mysql - 如何在 Windows 中的 MySQL 服务器上启用 SSL 连接

c# - dotnet core 3.1 windows 服务无法加载配置设置

kubernetes - 重新加载 Kubernetes ReplicationController 以获取新创建的服务