【问题标题】:Kubernetes pods can not make https request after deploying istio service meshKubernetes Pod 部署 istio 服务网格后无法发出 https 请求
【发布时间】:2019-12-29 14:46:24
【问题描述】:

我正在探索托管在 EKS(Amazon) 上的 k8s 集群上的 istio 服务网格。

我尝试在新的 k8s 集群上部署 istio-1.2.2,其中 demo.yml 文件用于 bookapp 演示以及我正确理解的大多数用例。

然后,我在现有的开发集群上使用 helm 默认配置文件(推荐用于生产)部署了 istio,运行了 100 多个微服务,我注意到我的服务可以调用 http 端点但不能调用外部安全端点(@987654321 @等)

我得到了:

curl:(35)错误:1400410B:SSL 例程:CONNECT_CR_SRVR_HELLO:错误 版本号

虽然我可以从我的测试集群调用外部 https 端点。

为了验证,我检查了出口政策,它在两个集群中都是 mode: ALLOW_ANY

现在,我从我的开发集群中完全删除了 istio 并安装了 demo.yml 进行测试,但现在这也不起作用。

我试图将我的问题与此联系起来,但没有成功。

https://discuss.istio.io/t/serviceentry-for-https-on-httpbin-org-resulting-in-connect-cr-srvr-hello-using-curl/2044

我不明白我错过了什么或我做错了什么。

注意:我指的是这个设置:https://istio.io/docs/setup/kubernetes/install/helm/

【问题讨论】:

  • 集群中是否有任何服务在监听 443 端口?
  • 如果您要求 k8s 服务,那么是的,我的集群中有很多集群 IP 类型的服务正在监听 80 和 443。接近 50 个服务。我无法说明它将如何影响 Istio 的工作? cluster-autoscaler-metrics、kubernetes-dashboard 等等。甚至 kubernetes 在 443 上有 kubernetes clusterIP 类型的服务 127.0.0.1。

标签: kubernetes istio api-gateway amazon-eks


【解决方案1】:

这很可能是 Istio 中的一个错误(例如参见 istio/istio#14520):如果您在集群中的任何位置有任何 Kubernetes 服务对象,该对象侦听端口 443 但其名称以 http 开头(不是 @987654324 @),它将中断所有出站 HTTPS 连接。

我遇到的这个实例涉及配置 AWS 负载均衡器来执行 TLS 终止。 Kubernetes Service 需要暴露 443 端口来配置负载均衡器,但它接收到的是普通未加密的 HTTP。

apiVersion: v1
kind: Service
metadata:
  name: breaks-istio
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:...
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
spec:
  selector: ...
  ports:
    - name: http-ssl # <<<< THIS NAME MATTERS
      port: 443
      targetPort: http

当我对此进行试验时,将 name: 更改为 httpstcp-https 似乎可行。那些name prefixes 对 Istio 很重要,但我并没有立即发现告诉 Istio 端口是 HTTPS(即使它实际上不提供 TLS)与普通的未解释 TCP 之间的任何功能差异。

您确实需要搜索您的集群并找到每个侦听端口 443 的服务,并确保端口名称不以 http-... 开头。

【讨论】:

  • 感谢您的回答,这是我的“kube-state-metrics” pod 在 443 端口中具有“http-metrics”名称。我现在删除了那个 svc,它解决了我的问题。从过去的两天开始,我一直在挣扎。但这很奇怪,我现在害怕在生产中测试它。 ;)
猜你喜欢
  • 2020-07-21
  • 2023-01-26
  • 2023-04-03
  • 2019-11-22
  • 1970-01-01
  • 2021-03-27
  • 1970-01-01
  • 1970-01-01
  • 2020-09-11
相关资源
最近更新 更多