开发者社区 > 云原生 > 正文

nacos注册信息怎么带灰度标识的?灰度标识字段放在哪里,可以同步到istio?

nacos注册信息怎么带灰度标识的?灰度标识字段放在哪里,可以同步到istio?

展开
收起
嘟嘟嘟嘟嘟嘟 2023-11-22 08:05:33 44 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在Nacos中,你可以使用服务分组和实例权重来实现灰度发布。服务分组代表一组服务实例,其中每个实例都有自己的权重。你可以将服务分组和实例权重映射到Istio中的虚拟服务和路由规则,从而实现在Istio中的灰度发布。
    下面是具体的操作步骤:

    1. 在Nacos中创建服务分组和实例权重。首先,打开Nacos控制台,然后点击“服务管理”菜单,然后点击“添加服务”。在“服务分组”选项卡中,可以添加多个服务分组,并设置每个服务分组的实例权重。
    服务分组   权重
    v1        50%
    v2        50%
    
    1. 在Istio中创建虚拟服务和路由规则。在Istio中,你可以使用ServiceEntry和VirtualService资源来创建虚拟服务,然后使用RouteRule资源来定义路由规则。在路由规则中,你可以将权重设置为与Nacos中的权重相匹配,以便实现灰度发布。
    apiVersion: networking.istio.io/v1alpha3
    kind: ServiceEntry
    metadata:
      name: productpage
    spec:
      hosts:
      - productpage
      location: MESH_EXTERNAL
      ports:
      - number: 9080
        name: http
        protocol: HTTP
      resolution: DNS
    ---
    apiVersion: networking.istio.io/v1alpha3
    kind: VirtualService
    metadata:
      name: productpage
    spec:
      hosts:
      - productpage.default.svc.cluster.local
      gateways:
      - istio-system/ingressgateway
      http:
      - route:
          - destination:
              host: productpage.default.svc.cluster.local
              subset: v1
          weight: 50
        match:
          - headers:
              cookie:
                exact: version=v1
      - route:
          - destination:
              host: productpage.default.svc.cluster.local
              subset: v2
          weight: 50
        match:
          - headers:
              cookie:
                exact: version=v2
    ---
    apiVersion: networking.istio.io/v1alpha3
    kind: DestinationRule
    metadata:
      name: productpage
    spec:
      host: productpage.default.svc.cluster.local
      subsets:
      - name: v1
        labels:
          version: v1
      - name: v2
        labels:
          version: v2
    
    1. 验证灰度发布。最后,在客户端发送请求时,使用HTTP头中的cookie字段来指定版本号,以便在Istio中实现灰度发布。
    2023-11-29 15:11:19
    赞同 展开评论 打赏
  • 在Nacos中,要实现注册信息的灰度标识,首先需要在全局范围内启用灰度配置。接下来,你可以配置具体的灰度规则,例如设定用户ID和产品ID等信息。此外,还需要设置哪些服务器是灰度服务器,并为它们打上相应的标签。服务启动后会在Nacos上进行注册,客户端发起请求时会带上这些灰度信息。

    从1.1.0版本开始,Nacos的配置编辑中已经支持了灰度配置。你可以在配置编辑中勾选"Beta发布",并在文本框中指定需要下发服务的IP地址,多个IP地址之间用英文逗号分隔。点击"发布Beta"后,会创建一个灰度配置。这个灰度配置只对特定的IP生效,即只有这些IP地址才能访问到新版本的服务。

    2023-11-22 10:07:15
    赞同 展开评论 打赏
  • 放在注册元数据里面的,通过nacos-istio那个带到istio。同步到istio里面就是serviceEntry, 你通过istio的debug接口就可以看到。此回答整理自钉群“Nacos社区群4”

    2023-11-22 08:53:50
    赞同 展开评论 打赏
问答分类:
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
workshop专场-微服务专场-开发者动手实践营-微服务-使用Nacos进行服务的动态发现和流量调度 立即下载
Kubernetes上基于Istio体验云原生应用实践 立即下载
Nacos 启航,发布第一个版本, 云原生时代助力用户微服务平台建设 立即下载