开发者学堂课程【KubeVela 对接 Istio 实现应用灰度发布实践:KubeVela 对接 Istio 实现应用灰度发布实践】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/975/detail/14896
KubeVela 对接 Istio 实现应用灰度发布实践
内容介绍
一、KUbeVela addon
二、对接 Istio 实现应用灰色发布
一、KUbeVela addon
本节课的主题是:目前存在非常多的 KUbeVela addon 插件,如提供云资源的 terraform、提供 Helm,Kustomize 组件的部署功能的 fluxcd、对阿里云熟悉的 kruise,这个组件是提供比 Kubernetes 原生更强大的工作负载套件和自动扩缩容的疙瘩,提供基于 Promethus 的基础监控功能的 prometheus,提供基于事件驱动的工作负载自动扩缩功能的keda,提供多集群功能的系统插件的 ocm,observability 为 KubeVela core 提供系统级别的监控,也可为应该用提供业务级别的监控。
以可观测性插件 observability 为例
如果通过命令$vela addon enable observability,安装插件后,安装5个 chat
从例子中可以看到可形成插件的定义,是将复杂且强大的功能通过一条简单命令提供出来,就可以将非常复杂且比较强大的能力以非常简单的形式部署出来,在为用户提供非常简单的体验。
二、对接 Istio 实现应用灰色发布
首先为了使用插件,需要安装istio。
通过$vela addon enable istio 将 istio 的功能和他的定义和相应的配置安装进来,
这些复杂的能力可以通过一条简单命令安装,因为istio需要打印 kubectl label default istio-injection=enabled 所以通过$kubectl label namespace default istio-injection=enabled 的命令打印,在这个例子中会使用的boradingfor 的应用。
istio 的 boradingfor 的架构为:请求被 Product page 主应用接收,首先会显示数据详情,还会去访问显示数据访问和评论信息,各条数据均显示,然后评论后面再存在打分系统支撑
详情如下图:
Demo 演示:
首先安装 enable istio,安装成功,接下来打 kubectl label 也就是 istio-injection-enabled。
这个代码演示位置在核心库 kubevela 下面 docs 下面 exampies 的 canary-rolloct-case。
通过定义部署 book-info 应用首先分几个组件
第一个 review 品论组件 Properties 是指定他的现象,为 examples-bookinfo-revlews-v2.1.16.2版本。指定端口和所需要的磁盘。
针对 revlew 品论组件此外配置了2个运维特性
1. canary-traffic 提供的金丝雀的流量切分,具备9080的端口,拥有这个组建后,金丝雀具有了流量切分的能力
2. Rollout 会产生两个副本,分批次发布的数字代表着做几个灰度发布如:replicas:2即一次发布两个副本数,代表一次发布成功。
Productpage 为核心应用组件,即 revlew 评论系统,拥有两个 type
Expose本质上是为创建一个 server 创建一个服务,赋予 ingresstway 的特性,接收来自所有 hosts 的配置应用的请求收转到网关上达到控制流量的能力,hosts 代表所有请求均可接收到,具体请求的 api 是在 productpage、login、api/v1/products 均可接收到。
第三第四组件分别为评分系统 ratings 和数据的详情 details 分别配置 servers。
将应用部署,即 first-deploy-yaml
有四个组件,可详细观看,get deployment-m 是模拟有多少个 pod,pod 生成的情况。
最后到达终态,review 评分系统会存在两个副本,因为刚才灰度发布的副本数就是两个。