基于MSE实现微服务的全链路灰度-3

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介: 基于MSE实现微服务的全链路灰度-3

4. ACK部署微服务

结合如下架构图,依次部署注册中心、应用A、应用B、应用C。

  1. 在集群列表页面,根据集群ID找到具体ACK集群(需记忆下集群名称,后续操作将用到),单击详情

  1. 在左侧导航栏中,选择工作负载>无状态,在无状态页面,单击右上角的使用YAML创建资源部署应用A、应用B、应用C以及注册中心

  1. 创建页面,输入如下注册中心的YAML,单击创建,并等待注册中心启动(一般耗时30s)。
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nacos-server
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nacos-server
  template:
    metadata:
      labels:
        app: nacos-server
    spec:
      containers:
      - env:
        - name: MODE
          value: standalone
        image: registry.cn-shanghai.aliyuncs.com/yizhan/nacos-server:v2.1.2
        imagePullPolicy: Always
        name: nacos-server
        livenessProbe:
          failureThreshold: 3
          initialDelaySeconds: 15
          periodSeconds: 10
          successThreshold: 1
          tcpSocket:
            port: 8848
          timeoutSeconds: 3
        readinessProbe:
          failureThreshold: 3
          initialDelaySeconds: 15
          periodSeconds: 10
          successThreshold: 1
          tcpSocket:
            port: 8848
          timeoutSeconds: 3
        resources:
          requests:
            cpu: 500m
            memory: 1Gi
      dnsPolicy: ClusterFirst
      restartPolicy: Always
# Nacos Server Service 配置
---
apiVersion: v1
kind: Service
metadata:
  name: nacos-server
spec:
  ports:
  - port: 8848
    protocol: TCP
    targetPort: 8848
  selector:
    app: nacos-server
  type: ClusterIP
  1. 创建页面,输入如下的应用A、应用B、应用C的YAML,单击创建
apiVersion: apps/v1
kind: Deployment
metadata:
  name: spring-cloud-a
spec:
  replicas: 1
  selector:
    matchLabels:
      app: spring-cloud-a
  template:
    metadata:
      labels:
        msePilotCreateAppName: spring-cloud-a
        msePilotAutoEnable: 'on'
        app: spring-cloud-a
    spec:
      containers:
      - name: spring-cloud-a
        image: registry.cn-shanghai.aliyuncs.com/yizhan/spring-cloud-a:1.0.0
        imagePullPolicy: Always
        ports:
        - containerPort: 20001
        livenessProbe:
          tcpSocket:
            port: 20001
          initialDelaySeconds: 10
          periodSeconds: 30
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: spring-cloud-a-gray
spec:
  replicas: 1
  selector:
    matchLabels:
      app: spring-cloud-a-gray
  strategy:
  template:
    metadata:
      labels:
        alicloud.service.tag: gray
        msePilotCreateAppName: spring-cloud-a
        msePilotAutoEnable: 'on'
        app: spring-cloud-a-gray
    spec:
      containers:
      - name: spring-cloud-a-new
        image: registry.cn-shanghai.aliyuncs.com/yizhan/spring-cloud-a:1.0.0
        imagePullPolicy: Always
        ports:
        - containerPort: 20001
        livenessProbe:
          tcpSocket:
            port: 20001
          initialDelaySeconds: 10
          periodSeconds: 30
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: spring-cloud-b
spec:
  replicas: 1
  selector:
    matchLabels:
      app: spring-cloud-b
  strategy:
  template:
    metadata:
      labels:
        msePilotCreateAppName: spring-cloud-b
        msePilotAutoEnable: 'on'
        app: spring-cloud-b
    spec:
      containers:
      - name: spring-cloud-b
        image: registry.cn-shanghai.aliyuncs.com/yizhan/spring-cloud-b:1.0.0
        imagePullPolicy: Always
        ports:
        - containerPort: 8080
        livenessProbe:
          tcpSocket:
            port: 20002
          initialDelaySeconds: 10
          periodSeconds: 30
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: spring-cloud-c
spec:
  replicas: 1
  selector:
    matchLabels:
      app: spring-cloud-c
  template:
    metadata:
      labels:
        msePilotCreateAppName: spring-cloud-c
        msePilotAutoEnable: 'on'
        app: spring-cloud-c
    spec:
      containers:
      - name: spring-cloud-c
        image: registry.cn-shanghai.aliyuncs.com/yizhan/spring-cloud-c:1.0.0
        imagePullPolicy: Always
        ports:
        - containerPort: 8080
        livenessProbe:
          tcpSocket:
            port: 20003
          initialDelaySeconds: 10
          periodSeconds: 30
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: spring-cloud-c-gray
spec:
  replicas: 1
  selector:
    matchLabels:
      app: spring-cloud-c-gray
  template:
    metadata:
      labels:
        alicloud.service.tag: gray
        msePilotCreateAppName: spring-cloud-c
        msePilotAutoEnable: 'on'
        app: spring-cloud-c-gray
    spec:
      containers:
      - name: spring-cloud-c-gray
        image: registry.cn-shanghai.aliyuncs.com/yizhan/spring-cloud-c:1.0.0
        imagePullPolicy: Always
        ports:
        - containerPort: 8080
        livenessProbe:
          tcpSocket:
            port: 20003
          initialDelaySeconds: 10
          periodSeconds: 30

本步骤部署了应用A、应用B、应用C以及注册中心,可以让内部流量按照业务逻辑进行调用。下一步我们将会配置MSE Ingress网关,引入外部流量。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
2月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
2月前
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1
|
4月前
|
Kubernetes 测试技术 数据库
详解微服务应用灰度发布最佳实践
相对于传统软件研发,微服务架构下典型的需求交付最大的区别在于有了能够小范围真实验证的机制,且交付单位较小,风险可控,灰度发布可以弥补线下测试的不足。本文从 DevOps 视角概述灰度发布实践,介绍如何将灰度发布与 DevOps 工作融合,快来了解吧~
31060 18
|
6月前
|
弹性计算 监控 Cloud Native
云原生最佳实践系列 4:基于 MSE 和 SAE 的微服务部署与压测
通过MSE(微服务引擎)、SAE(Serverless应用引擎)、ARMS(应用监控服务)、PTS(性能测试服务)等产品,实现微服务的无服务化部署、监控和弹性伸缩。
652 14
|
6月前
|
负载均衡 Java 测试技术
面试官:说说微服务灰度发布的底层实现?
面试官:说说微服务灰度发布的底层实现?
137 1
面试官:说说微服务灰度发布的底层实现?
|
6月前
|
Cloud Native 测试技术 Nacos
云效 AppStack + 阿里云 MSE 实现应用服务全链路灰度
本文介绍了如何通过阿里云 MSE 微服务引擎和云效应用交付平台 AppStack 实现灰度发布。
91193 4
|
6月前
|
Cloud Native 测试技术 Nacos
云效AppStack+阿里云MSE实现应用服务全链路灰度
在应用开发测试验证通过后、进行生产发布前,为了降低新版本发布带来的风险,期望能够先部署到灰度环境,用小部分业务流量进行全链路灰度验证,验证通过后再全量发布生产。本文主要介绍如何通过阿里云MSE 微服务引擎和云效应用交付平台AppStack 实现灰度发布。
121590 3
|
6月前
|
微服务
三个微服务注册中心eureka、consul、zookeeper之间的异同点以及CAP理论图
三个微服务注册中心eureka、consul、zookeeper之间的异同点以及CAP理论图
341 0
|
6月前
|
Java Go 数据库
OpenSergo/MSE & CloudWeGo 共同保障微服务运行时流量稳定性
微服务运行时稳定性的问题微服务的稳定性一直是开发者非常关注的话题。随着业务从单体架构向分布式架构演进以及部署方式的变化,服务之间的依赖关系变得越来越复杂,业务系统也面临着巨大的高可用挑战。大家可能都经历过以下的场景:演唱会抢票瞬间洪峰流量导致系统超出最大负载,load 飙高,用户无法正常下单;在线选...
153 0
OpenSergo/MSE & CloudWeGo 共同保障微服务运行时流量稳定性
|
6月前
|
移动开发 Kubernetes 测试技术
MSE服务治理最佳实践:基于Ingress-nginx网关实现全链路灰度
微服务架构下,有一些需求开发涉及到微服务调用链路上的多个微服务同时改动。通常每个微服务都会有灰度环境或分组来接受灰度流量。我们希望进入上游灰度环境的流量也能进入下游灰度的环境中,确保1个请求始终在灰度环境中传递。即使这个调用链路上有一些微服务应用不存在灰度环境,那么这些微服务应用在请求下游应用的时候依然能够回到下游应用的灰度环境中。我们通过 MSE 提供的全链路灰度能力,可以在不需要修改任何业务代码的情况下,轻松实现上述所说的全链路灰度能力。
MSE服务治理最佳实践:基于Ingress-nginx网关实现全链路灰度

相关产品

  • 微服务引擎