Chaos带你快速上手混沌工程实战体验

1. 创建实验资源

在页面左侧,单击云产品资源下拉菜单,查看本次实验资源。

单击免费开通创建所需资源。

说明:

资源创建过程需要1~3分钟。完成实验资源的创建后,您可以在云产品资源列表查看已创建的资源信息,例如:IP地址、用户名和密码等。

2. 创建应用

点击右侧 图标,切换到远程桌面操作界面。

双击打开虚拟桌面的Firefox ESR浏览器,在RAM用户登录框中点击“下一步”,复制云产品资源列表中子用户密码,粘按CTRL+V把密码粘贴到密码输区,登陆子账户(后续在远程桌面里的粘贴操作均使用CTRL + V快捷键)。

复制容器服务ACK控制台地址,在FireFox浏览器打开新页签,粘贴并访问容器服务ACK控制台。

https://cs.console.aliyun.com/

在集群页面,单击详情。

在左侧导航栏,单击无状态。

在无状态页面,单击使用YAML创建资源。

在创建页面,复制以下代码并粘贴到模板框中,然后单击创建。

apiVersion: apps/v1

kind: Deployment

metadata:

 name: nacos-server

spec:

 selector:

   matchLabels:

     app: nacos-server

 template:

   metadata:

     labels:

       app: nacos-server

   spec:

     containers:

       - name: nacos-standalone

         image: registry.cn-beijing.aliyuncs.com/ahas_demo/nacos:1.0.0

         ports:

           - containerPort: 8848

         env:

           - name: PREFER_HOST_MODE

             value: "hostname"

           - name: MODE

             value: "standalone"

         resources:

           limits:

             cpu: 1

             memory: 2048Mi

           requests:

             cpu: 200m

             memory: 512Mi

---

apiVersion: v1

kind: Service

metadata:

 name: nacos-server

spec:

 type: ClusterIP

 selector:

   app: nacos-server

 ports:

   - name: http

     port: 8848

     targetPort: 8848

---

apiVersion: apps/v1

kind: Deployment

metadata:

 name: cart-redis

spec:

 selector:

   matchLabels:

     app: cart-redis

 replicas: 1

 template:

   metadata:

     labels:

       app: cart-redis

   spec:

     containers:

       - name: cart-redis

         image: redis:alpine

         imagePullPolicy: IfNotPresent

         ports:

           - containerPort: 6379

         resources:

           limits:

             cpu: 1

             memory: 512Mi

           requests:

             cpu: 200m

             memory: 128Mi

---

apiVersion: v1

kind: Service

metadata:

 labels:

   app: cart-redis

 name: cart-redis

spec:

 ports:

   - port: 6379

     targetPort: 6379

 selector:

   app: cart-redis

---

apiVersion: apps/v1

kind: Deployment

metadata:

 name: cartservice

spec:

 selector:

   matchLabels:

     app: cartservice

 template:

   metadata:

     labels:

       app: cartservice

   spec:

     containers:

       - name: cartservice

         image: registry.cn-beijing.aliyuncs.com/ahas_demo/cartservice:1.0.0

         imagePullPolicy: Always

         env:

           - name: dubbo.registry.address

             value: "nacos://nacos-server:8848"

           - name: spring.cloud.nacos.discovery.server-addr

             value: "nacos-server:8848"

           - name: spring.cloud.nacos.config.server-addr

             value: "nacos-server:8848"

         resources:

           limits:

             cpu: 1

             memory: 512Mi

           requests:

             cpu: 200m

             memory: 128Mi

---

apiVersion: apps/v1

kind: Deployment

metadata:

 name: recommendationservice

spec:

 selector:

   matchLabels:

     app: recommendationservice

 template:

   metadata:

     labels:

       app: recommendationservice

       version: 1.0.0-SNAPSHOT

   spec:

     containers:

       - name: recommendationservice

         image: registry.cn-beijing.aliyuncs.com/ahas_demo/recomendationservice:1.0.0

         # imagePullPolicy: Always

         env:

           - name: dubbo.registry.address

             value: "nacos://nacos-server:8848"

           - name: spring.cloud.nacos.discovery.server-addr

             value: "nacos-server:8848"

           - name: spring.cloud.nacos.config.server-addr

             value: "nacos-server:8848"

         resources:

           limits:

             cpu: 1

             memory: 512Mi

           requests:

             cpu: 200m

             memory: 128Mi

---

apiVersion: apps/v1

kind: Deployment

metadata:

 name: product-mysql

spec:

 selector:

   matchLabels:

     app: product-mysql

 replicas: 1

 strategy:

   type: Recreate

 template:

   metadata:

     labels:

       app: product-mysql

   spec:

     containers:

       - args:

           - --character-set-server=utf8mb4

           - --collation-server=utf8mb4_unicode_ci

         env:

           - name: MYSQL_DATABASE

             value: product

           - name: MYSQL_ROOT_PASSWORD

             value: productservice

         image: mysql:5.6

         name: product-mysql

         ports:

           - containerPort: 3306

         resources:

           limits:

             cpu: 1

             memory: 512Mi

           requests:

             cpu: 200m

             memory: 128Mi

---

apiVersion: v1

kind: Service

metadata:

 labels:

   app: product-mysql

 name: product-mysql

spec:

 ports:

   - port: 3306

     targetPort: 3306

 selector:

   app: product-mysql

---

apiVersion: apps/v1

kind: Deployment

metadata:

 name: productservice

spec:

 selector:

   matchLabels:

     app: productservice

 template:

   metadata:

     labels:

       app: productservice

       version: 1.0.0-SNAPSHOT

   spec:

     containers:

       - name: productservice

         image: registry.cn-beijing.aliyuncs.com/ahas_demo/productservice:1.0.0

         imagePullPolicy: Always

         env:

           - name: dubbo.registry.address

             value: "nacos://nacos-server:8848"

           - name: spring.cloud.nacos.discovery.server-addr

             value: "nacos-server:8848"

           - name: spring.cloud.nacos.config.server-addr

             value: "nacos-server:8848"

         resources:

           limits:

             cpu: 1

             memory: 512Mi

           requests:

             cpu: 200m

             memory: 128Mi

---

apiVersion: apps/v1

kind: Deployment

metadata:

 name: checkout-mysql

spec:

 selector:

   matchLabels:

     app: checkout-mysql

 replicas: 1

 strategy:

   type: Recreate

 template:

   metadata:

     labels:

       app: checkout-mysql

   spec:

     containers:

       - args:

           - --character-set-server=utf8mb4

           - --collation-server=utf8mb4_unicode_ci

         env:

           - name: MYSQL_DATABASE

             value: checkout

           - name: MYSQL_ROOT_PASSWORD

             value: checkoutservice

         image: mysql:5.6

         name: checkout-mysql

         ports:

           - containerPort: 3306

         resources:

           limits:

             cpu: 1

             memory: 512Mi

           requests:

             cpu: 200m

             memory: 128Mi

---

apiVersion: v1

kind: Service

metadata:

 labels:

   app: checkout-mysql

 name: checkout-mysql

spec:

 ports:

   - port: 3306

     targetPort: 3306

 selector:

   app: checkout-mysql

---

apiVersion: apps/v1

kind: Deployment

metadata:

 name: checkoutservice

spec:

 selector:

   matchLabels:

     app: checkoutservice

 template:

   metadata:

     labels:

       app: checkoutservice

   spec:

     containers:

       - name: checkoutservice

         image: registry.cn-beijing.aliyuncs.com/ahas_demo/checkoutservice:health

         imagePullPolicy: Always

         ports:

           - name: liveness-port

             containerPort: 8080

             protocol: TCP

         env:

           - name: dubbo.registry.address

             value: "nacos://nacos-server:8848"

           - name: spring.cloud.nacos.discovery.server-addr

             value: "nacos-server:8848"

           - name: spring.cloud.nacos.config.server-addr

             value: "nacos-server:8848"

         resources:

           limits:

             cpu: 1

             memory: 512Mi

           requests:

             cpu: 200m

             memory: 128Mi

         livenessProbe:

           failureThreshold: 3

           httpGet:

             path: /health

             port: liveness-port

             scheme: HTTP

           initialDelaySeconds: 5

           periodSeconds: 10

           successThreshold: 1

           timeoutSeconds: 1

         startupProbe:

           failureThreshold: 3

           httpGet:

             path: /health

             port: liveness-port

             scheme: HTTP

           initialDelaySeconds: 40

           periodSeconds: 5

           successThreshold: 1

---

apiVersion: apps/v1

kind: Deployment

metadata:

 name: frontend

spec:

 selector:

   matchLabels:

     app: frontend

 template:

   metadata:

     labels:

       app: frontend

   spec:

     containers:

       - name: frontend

         image: registry.cn-beijing.aliyuncs.com/ahas_demo/frontend:async-test

         imagePullPolicy: Always

         ports:

           - name: liveness-port

             containerPort: 8080

             protocol: TCP

         env:

           - name: dubbo.registry.address

             value: "nacos://nacos-server:8848"

           - name: spring.cloud.nacos.discovery.server-addr

             value: "nacos-server:8848"

           - name: spring.cloud.nacos.config.server-addr

             value: "nacos-server:8848"

         resources:

           limits:

             cpu: 1

             memory: 512Mi

           requests:

             cpu: 200m

             memory: 128Mi

         livenessProbe:

           failureThreshold: 3

           httpGet:

             path: /health

             port: liveness-port

             scheme: HTTP

           initialDelaySeconds: 5

           periodSeconds: 10

           successThreshold: 1

           timeoutSeconds: 1

         startupProbe:

           failureThreshold: 3

           httpGet:

             path: /health

             port: liveness-port

             scheme: HTTP

           initialDelaySeconds: 60

           periodSeconds: 5

           successThreshold: 1

---

apiVersion: v1

kind: Service

metadata:

 name: frontend

spec:

 type: ClusterIP

 selector:

   app: frontend

 ports:

   - name: http

     port: 8080

     targetPort: 8080

---

apiVersion: v1

kind: Service

metadata:

 name: frontend-external

spec:

 type: LoadBalancer

 selector:

   app: frontend

 ports:

   - name: http

     port: 8080

     targetPort: 8080

在左侧导航栏,单击无状态。

在无状态页面,等待几分钟,单击刷新,容器组数量全部为1/1之后,表示应用部署完成。

注意 :

如果出现某服务无法正常启动的情况,您只需单击目标服务右侧操作列表下的更多>重新部署即可。如果遇到frontend无法正常启动的情况,此时您需要先将checkoutservice重新部署后,再将frontend重新部署即可。

在无状态页面,单击frontend。

在frontend服务页面,单击访问方式页签。

在frontend服务的访问方式页签,单击frontend-external服务的外部端点。

若返回如下页面,表示应用部署成功。

在商品概览页面,单击任意商品,例如Air Jordan Legacy 312。

在商品详情页面,单击添加购物车。

在购物车页面,单击确认订单。

若返回如下页面,表示订单支付成功。

3. 安装探针

  1. 回到容器服务控制台页面,单击左侧导航栏上方的Chaos带你快速上手混沌工程实战体验 图标。

Chaos带你快速上手混沌工程实战体验

  1. 集群列表页面的左侧导航栏中,单击应用目录

Chaos带你快速上手混沌工程实战体验

  1. 应用目录页面,单击ack-ahas-pilot

Chaos带你快速上手混沌工程实战体验

  1. 在ack-ahas-pilot的详情页面,单击创建

Chaos带你快速上手混沌工程实战体验

返回如下页面,表示探针已经部署完成。

Chaos带你快速上手混沌工程实战体验

上一页下一页

4. 通过架构感知查看系统整体架构

  1. 复制应用高可用服务控制台地址,在Fi

  2. refox浏览器打开新页签,粘贴并访问容器服务应用高可用服务控制台。
https://chaos.console.aliyun.com/
  1. 概览页面顶部,选择资源所在地域。例如下图中,地域切换为华东1(杭州)。

Chaos带你快速上手混沌工程实战体验

  1. 在左侧导航栏,单击故障演练>架构感知

Chaos带你快速上手混沌工程实战体验

  1. 架构地图页面,单击Kubernetes监控视图卡片中的查看视图

Chaos带你快速上手混沌工程实战体验

  1. 架构地图页面,打开Kubernetes监控视图下拉列表,选择命令空间为default,然后单击确定即可查看实验资源的Kubernetes监控视图。

Chaos带你快速上手混沌工程实战体验




上一篇:java 自定义表单设计方案


下一篇:现有服务器oracle数据库调优