当前位置: 首页 > 知识库问答 >
问题:

Kubernetes的Zuul部署

黄成荫
2023-03-14

这是我第一次尝试将微服务体系结构部署到Kubernetes中。起初,我正在考虑使用大使作为我的API网关。我还有一个身份验证服务,它验证用户并生成JWT令牌,但是,每次调用服务时,我都需要验证这个令牌。这代表了一个过载问题(因为每次API网关接收流量时,它都会转到该外部身份验证服务以验证JWT令牌),并且大使没有选择在不使用外部服务的情况下执行此过滤。

在这种情况下,使用Zuul网关似乎是最好的选择,因为它允许我在网关内验证JWT令牌(而不是通过像Ambassador这样的外部服务)。但是,如果我在Kubernetes中部署它,我不确定Zuul将如何工作,因为据我所知,Zuul需要有服务发现的地址(比如Eureka)。

如果我在Kubernetes集群中部署Zuul,那么它将如何定位我的服务?

例如,在本地,因为我以前使用过Eureka,而且我知道它的地址,所以没有问题。此外,我认为在库伯内特斯部署Eureka不是一个好主意,因为它是多余的。

如果无法使用Zuul进行验证,是否存在另一个API网关或方法,我可以使用网关验证令牌,而不是像Ambassador那样依赖外部身份验证服务?

非常感谢。

共有1个答案

姬阳曜
2023-03-14

在kubernetes中,你已经有了“发现”服务,这是kubernetes服务。它定位吊舱并作为它们的负载均衡器。

假设您有这样的Zuul配置:

zuul:
  routes:
    books-service:
      path: /books/**
      serviceId: books-service

将匹配的/books/**请求路由到服务图书服务。通常,您有一个Eureka,它可以为您提供图书服务的真实地址,但现在不行。

这就是Ribbon可以帮助您的地方——它允许您在Zuul匹配其请求后手动调整路由。因此,您需要将此添加到配置中:

books-service.ribbon.listOfServers: "http://books:8080"

在Zuul找到serviceId(books service)后,它将请求路由到books:8080

书籍: 8080只是一个kubernetes-service:

kind: Service
apiVersion: v1
metadata:
  name: books
spec:
  selector:
    app: spring-books-service
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 9376

您可以说它是一个负载均衡器,它获取来自: 8080的流量,并将其重定向到标签为的Pod应用程序:sping-books-service

接下来您需要做的就是将标签分配给POD(例如通过部署)

顺便说一句,您可以在任何应用程序中配置Ribbon,kubernetes将定位您所有的应用程序(pod)及其服务,因此您根本不需要任何发现服务!由于k8s-service比Eureka更可靠,您可以简单地删除它。

 类似资料:
  • 环境说明 CentOS 7.4 购买自阿里云普通的 ECS 华南地区(如果你是购买美国地区的服务器,则直接使用 kubespray 原项目,那些镜像地址不用修改,其他照着文档即可) 所有机子都是干净的不需要先安装 Docker 等其他容器相关的东西 机器简称 内网 IP 地址 部署软件 系统环境 硬件配置 操作机 172.18.243.242 ansible CentOS 7.4 1 vCPU +

  • 我只是试图在一个名为“test”的名称空间中部署kubernetes仪表板。 https://raw.githubusercontent.com/kubernetes/dashboard/v1.8.3/src/deploy/recommended/kubernetes-dashboard.yaml kubectl应用-f Kubernetes-Dashboard.YAML-N测试 但是,它仍然试图

  • 本系列文档介绍使用二进制部署最新 kubernetes v1.6.2 集群的所有步骤,而不是使用 kubeadm 等自动化方式来部署集群。 在部署的过程中,将详细列出各组件的启动参数,它们的含义和可能遇到的问题。 部署完成后,你将理解系统各组件的交互原理,进而能快速解决实际问题。 所以本文档主要适合于那些有一定 kubernetes 基础,想通过一步步部署的方式来学习和了解系统配置、运行原理的人。

  • 本系列文档介绍使用二进制部署最新 kubernetes v1.6.2 集群的所有步骤,而不是使用 kubeadm 等自动化方式来部署集群。

  • 我们有Zuul和Eureka在我们的kubernetes集群上运行。Zuul在Eureka注册。 我启动了一个名为“资源服务”的新服务,这将正确启动并注册到Eureka,所有服务都启动了。 当我试图访问Zuulendpoint以访问“resource-service”时,我得到以下错误。看起来Zuul不能映射到Resource-service,即使Resource-service注册了Eureka

  • TiCDC 是一款 TiDB 增量数据同步工具,本文介绍如何使用 TiDB Operator 在 Kubernetes 上部署 TiCDC。 前置条件 TiDB Operator 部署完成。 全新部署 TiDB 集群同时部署 TiCDC 参考 在标准 Kubernetes 上部署 TiDB 集群进行部署。 在现有 TiDB 集群上新增 TiCDC 组件 编辑 TidbCluster Custom