首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >上游连接错误或在标头之前断开/重置。重置原因:连接失败。Spring Boot和java 11

上游连接错误或在标头之前断开/重置。重置原因:连接失败。Spring Boot和java 11
EN

Stack Overflow用户
提问于 2020-08-14 07:45:07
回答 1查看 79.9K关注 0票数 13

我在将我的纯Kubernetes应用程序迁移到一个Istio管理程序时遇到了问题。我正在使用Google平台(GCP)、Istio 1.4、引擎(GKE)、Spring和JAVA 11。

我让容器在纯GKE环境中运行,没有问题。现在,我开始迁移我的Kubernetes集群以使用Istio。从那时起,当我尝试访问公开的服务时,我会收到以下消息。

上游连接错误或在标头之前断开/重置。重置原因:连接失败

此错误消息看起来非常通用。我发现了许多不同的问题,有相同的错误信息,但没有人与我的问题有关。

把伊斯蒂奥的版本叫来:

代码语言:javascript
运行
复制
client version: 1.4.10
control plane version: 1.4.10-gke.5
data plane version: 1.4.10-gke.5 (2 proxies)

我的yaml档案:

代码语言:javascript
运行
复制
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    account: tree-guest
  name: tree-guest-service-account
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: tree-guest
    service: tree-guest
  name: tree-guest
spec:
  ports:
  - name: http
    port: 8080
    targetPort: 8080
  selector:
    app: tree-guest
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: tree-guest
    version: v1
  name: tree-guest-v1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: tree-guest
      version: v1
  template:
    metadata:
      labels:
        app: tree-guestaz
        version: v1
    spec:
      containers:
      - image: registry.hub.docker.com/victorsens/tree-quest:circle_ci_build_00923285-3c44-4955-8de1-ed578e23c5cf
        imagePullPolicy: IfNotPresent
        name: tree-guest
        ports:
        - containerPort: 8080
      serviceAccount: tree-guest-service-account
---
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: tree-guest-gateway
spec:
  selector:
    istio: ingressgateway # use istio default controller
  servers:
    - port:
        number: 80
        name: http
        protocol: HTTP
      hosts:
        - "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: tree-guest-virtual-service
spec:
  hosts:
    - "*"
  gateways:
    - tree-guest-gateway
  http:
    - match:
        - uri:
            prefix: /v1
      route:
        - destination:
            host: tree-guest
            port:
              number: 8080

为了应用yaml文件,我使用了以下参数:

代码语言:javascript
运行
复制
kubectl apply -f <(istioctl kube-inject -f ./tree-guest.yaml)

在部署应用程序之后,Istio代理参数的结果如下:

代码语言:javascript
运行
复制
istio-ingressgateway-6674cc989b-vwzqg.istio-system SYNCED SYNCED SYNCED SYNCED 
istio-pilot-ff4489db8-2hx5f 1.4.10-gke.5 tree-guest-v1-774bf84ddd-jkhsh.default SYNCED SYNCED SYNCED SYNCED istio-pilot-ff4489db8-2hx5f 1.4.10-gke.5

如果有人知道出了什么问题,请告诉我。我在这个问题上困了几天。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-09-28 05:57:26

正如@Victor提到的,这里的问题是错误的yaml文件。

我来解决它。就我而言,yaml文件是错误的。我看过了,现在问题解决了。谢谢你们,-维克多

如果你在寻找yaml样本,我建议你看看istio github样本

由于503 upstream connect error or disconnect/reset before headers. reset reason: connection failure经常发生,我设置了很少的疑难解答,还有另一个问题,有503个错误,我遇到了几个月的答案,来自istio文档的有用信息,以及我要检查的东西。

有503个错误的例子:

istio文档503个错误的常见原因:

有几件事我会先检查一下:

  • 检查服务端口名,Istio可以正确路由流量,如果它知道协议。它应该是<protocol>[-<suffix>],正如istio文档中提到的那样。
  • 检查mTLS,如果mTLS有任何问题,通常这些问题会导致错误503。
  • 检查istio是否有效,我建议应用bookinfo应用示例,并检查它是否按预期工作。
  • 检查您的命名空间是否为注射kubectl get namespace -L istio-injection
  • 如果使用子集的VirtualService在定义子集的DestinationRule之前到达,则导频生成的特使配置将引用不存在的上游池。这将导致HTTP 503错误,直到所有配置对象都可用于导频。
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63408608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档