首页 > 解决方案 > Ingress 不适用于 Kubernetes 基础架构

问题描述

我使用 Spring Cloud 在 Google Cloud Platform 上的 Kubernetes(版本:1.20.9-gke.1001)上创建了一个微服务基础架构。

首先,我创建了以下部署:Eureka(服务发现)、Zuul(API 网关)、Zipkin(分布式跟踪系统)、用户服务和身份验证服务。

然后我创建了以下服务:具有“Cluster IP”类型的 eureka-service,允许其他 Pod 连接到 Eureka,具有“Cluster IP”类型的 zipkin-service,允许其他 Pod 连接到 Zipkin 和具有“外部负载”的 loadbalancer-service平衡器”类型,连接到 Zuul。

最后,我尝试使用附加的 yaml 文件创建一个 Ingress,但在我尝试执行的每个请求时,我都会收到以下错误:“响应 404(后端未找到),路径的服务规则不存在”。而如果我尝试使用负载平衡器服务的外部 IP 调用 API,则后端可以正常工作。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: project-ingress
  annotations:
    kubernetes.io/ingress.class: "gce"
spec:
  rules:
  - host: project.test.com
    http:
      paths:
      - path: /*
        pathType: ImplementationSpecific
        backend:
          service:
            name: loadbalancer-service
            port:
              number: 8765

你知道为什么 Ingress 不工作吗?

另外我需要使用 HTTPS 公开服务,您能否向我解释一下如何在 Ingress 中使用现有的安全证书?

谢谢,这是我第一次使用 Kubernetes,当然欢迎任何关于如何改进基础设施的建议。

标签: javaspring-bootkubernetesspring-cloudkubernetes-ingress

解决方案


推荐阅读