0

我有一个位于负载均衡器后面的 k8s 集群。对 myapisite.com 的请求通过 LB 并由 k8s 路由到正确的部署,从 k8s 负载均衡器入口获取 SSL 证书,然后路由到服务入口,如下所示:

spec:
  rules:
  - host: myapisite.com
    http:
      paths:
      - backend:
          serviceName: ingress-605582265bdcdcee247c11ee5801957d
          servicePort: 80
        path: /
  tls:
  - hosts:
    - myapisite.com
    secretName: myapisitecert
status:
  loadBalancer: {}

所以我的 myapisite.com 正确解析了 HTTPS。

我的问题是,在保持上述设置的同时(如果可能),我需要能够在 HTTPS 上访问同一命名空间内的本地服务端点,即从另一个 pod 我应该能够 curl 或 wget 没有以下内容证书错误:

https:\\myapisite.namespace.svc.cluster.local

即使我对在 pod 级别之前不终止 SSL 感兴趣,也不能在证书上为 .local 地址创建 SAN 条目,因此该解决方案不可行。

我是否缺少一些简单的方法来使所有本地 DNS 在 k8s 中受信任?或者这里有一些其他的解决方案,希望不是轮子的重新发明?我正在使用带有 CoreDNS 的 kubernetes 1.11 版。

谢谢,如果这是一个愚蠢的问题,请提前道歉。

4

1 回答 1

1

如果您的应用程序可以同时侦听 HTTP 和 HTTPS,则可以同时配置两者。这意味着您可以根据自己的喜好通过 HTTP 和 HTTPS 进行访问。现在,您如何创建和分发证书是另一回事,但您必须自己解决它(可能通过使用您自己的 CA 并秘密存储证书/密钥)。除非您想使用 Istio 之类的东西及其相互 tls 支持来保护服务之间的流量。

当你写你想要达到的目标时,我们真的不知道为什么。这种需求的原因实际上可能有助于提出最佳解决方案

于 2018-10-02T15:00:10.573 回答