istio1.8

istio的安装和升级

原来已经支持istioctl install 和 Istio operator,现在新增helm3的安装方式,当前还处于试验阶段。之前在1.6版本移除,可能是顺应社区的需求,重新加回来。

多集群

编写新的安装文档,使得多集群安装变得容易。多集群包含单一网络和多网络场景。

虚拟机支持

新增智能DNS,istio agent会透明拦截DNS请求,实现虚拟机到服务网格访问,不必以非安全方式将其指向集群DNS服务器。

安全

网关证书之前是通过网关直接访问k8s读取,现在由istiod来发送。

支持外部的CA,需要使用Kubernetes CSR API(k8s版本>=1.18)

易用性

istioctl bug-report 用于搜集错误报告

istioctl analyze 可以返回错误所在的行号以及错误信息

弃用

正式弃用mixed,建议使用Envoy WebAssembly来扩展。

Istio 1.7

安全增强

确认destination规则证书的分发场景下,使用sds来下发证书很有优势(尤其是证书轮转)。现在这个特性用在Egress网关上,提供tls/mtls证书。

信任域验证除了支持http,现在tcp也可以支持了,并且可以在MeshConfig配置。

支持使用ECC(椭圆曲线密码学)进行 CA 通信,提高了安全性和效率。

易用性

主要是istioctl工具的增强

  • analysis 支持
    • 对可能不安全的 DestinationRule 配置发出警告
    • 对使用废弃的 Mixer 资源发出警告
  • 使用ISTIOCONFIG指定istioctl的配置
  • 使用名字代替端口,例如http表示80端口
  • 添加 istioctl x uninstall 用于卸载
  • 支持多控制平面升级,可以同时部署多个版本,验证新版本

生产运维改进

在sidecar启动后再启动应用,避免应用启动时拿不到配置。(通过在sidecar配置 lifecycle-postStart 脚本实现)

Istio Operator 作为最佳安装方式,但目前还不支持金丝雀部署。

提供了 istio-agent 的指标

虚拟机安全性

支持证书的分发和自动轮转

istioctl能够验证虚拟机的状态

增加RPM安装包,简化安装

其他

在这个版本开始要求k8s 1.16以上,主要是因为webhook admissionregistration.io beta1要改为v1版本(在k8s1.16开始支持,在1.19版本移除beta1)

【alpha】试验支持中心化的istio (Central Istiod), 把控制面部署在外部的集群,从目标集群获取配置和service。中心集群不获取配置,两个都是远程集群,从其中一个集群读取配置。

向 Envoy xDSv3 迁移

istio 1.6

版本目标是继续简化,在发布标题使用了三个Simplify来强调。

易用性

使用istioctl工具可以提供更好的诊断信息,更简单的安装方式

支持istio控制面的金丝雀发布,istioctl upgrade支持原地升级

可观察性

增加很多指标以及可配置项。

[alpha]配置可以开启状态信息,用于判断配置是否分发完成 https://istio.io/latest/docs/reference/config/config-status/

虚拟机支持

通过WorkloadEntry更简单的定义VM,这样可以使得VM和Pod在同一级别下。在之前是依赖ServiceEntry指定address的方式支持。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
apiVersion: networking.istio.io/v1alpha3
kind: WorkloadEntry
metadata:
  name: details-svc
spec:
  serviceAccount: details-legacy
  address: vm1.vpc01.corp.net
  labels:
    app: details-legacy
    instance-id: vm1

网络改进

默认启用了Gateway SDS

添加了对Kubernetes Service API的实验性支持

支持VirtualService级联方式,可以嵌套配置VirtualService,为了避免单个VS文件太大。

img

istio 1.5

istiod的起源地,istio发现当前部署架构过于复杂,不利于推广,在这个版本开始合并组件。

可扩展性

引入WebAssembly,抛弃Mixer

易用性

提供 istioctl 安装工具,以及IstioOperator API用于运维,还处于alpha状态。

istioctl 支持一些分析能力

更安全

简化mtls配置,启动自动mtls。

授权支持“拒绝”语义

将nodeagent的功能移入pilot agent,简化部署,不必在证书更改时重启envoy。

优化

优化xds推送,例如有些配置变更不涉及到eds的更新,可以不推送。详细

参考

Istio 1.8正式发布 http://dockone.io/article/43733

Istio 1.8——用户至上的选择 https://jimmysong.io/blog/istio-18-release/

Istio 1.7 发布——进击的追风少年 https://www.servicemesher.com/blog/istio-1-7-explanation/

Istio v1.6深度解读:Simplify(有深入分析) https://www.ershicimi.com/p/291c62cff3608af7681b2821b05da3ac

迈向极简主义 - Istio 1.6 发布 https://www.servicemesher.com/blog/istio-1.6-explain/

拥抱变化 —— Istio 1.5 新特性解读 https://www.servicemesher.com/blog/istio-1-5-explanation/