当前位置: 代码迷 >> 综合 >> Istio 升级更新
  详细解决方案

Istio 升级更新

热度:81   发布时间:2024-02-21 03:57:50.0

在Istio1.5及之后,架构方面产生大变化,控制平面已经回归到单体,对应在1.4升级到1.5的时候,有一些坑需要留意的。
建议还是升级还是从一个一个minor逐步升级,例如1.4.x -> 1.5.x -> 1.6.x,而不是直接1.4.x -> 1.6.x。
生产环境下,升级前请做好备份工作!

Istio 1.4 升级到 1.5

检查版本信息

当前版本 Istio-1.4.6
通过执行命令 istioctl version 查看
在这里插入图片描述
目标版本 Istio-1.5.0

下载目标版本

1.下载并配置 istioctl 环境变量

curl -L https://git.io/getLatestIstio | ISTIO_VERSION=1.5.0 sh -
export PATH="$PATH:/root/istio-1.5.0/bin"

2.取消旧版本环境变量

export PATH=`echo $PATH | sed 's#/root/istio-1.4.6/bin:##g'`

3.导出Profile

istioctl profile dump demo > demo.yaml

4.将协议修改成第一方,不然会提示证书不信任等问题

sed -i 's#jwtPolicy: third-party-jwt#jwtPolicy: first-party-jwt#g' demo.yaml

升级 Istio

5.通过执行命令 istioctl upgrade -f demo.yaml 查看
在这里插入图片描述
升级完成后 通过执行命令 istioctl version 查看版本
在这里插入图片描述
当前见到还有 5个数据平面的应用还未升级到1.5.0,因为应用还未重启,选择一个合适的时机重启即可。
至此,Istio已经从1.4升级到1.5。

Istio 1.5 升级到 1.6

检查版本信息

当前版本 Istio-1.5.0
通过执行命令 istioctl version 查看
在这里插入图片描述
目标版本 Istio-1.6.4

下载目标版本

1.下载并配置 istioctl 环境变量

curl -L https://git.io/getLatestIstio | ISTIO_VERSION=1.6.4 sh -
export PATH="$PATH:/root/istio-1.6.4/bin"

2.取消旧版本环境变量

export PATH=`echo $PATH | sed 's#/root/istio-1.5.0/bin:##g'`

3.删除旧版本CRD

kubectl delete policies.authentication.istio.io --all-namespaces --all
kubectl delete meshpolicies.authentication.istio.io --all

4.导出Profile

istioctl profile dump demo > demo.yaml

5.将协议修改成第一方,不然会提示证书不信任等问题

sed -i 's#jwtPolicy: third-party-jwt#jwtPolicy: first-party-jwt#g' demo.yaml

升级 Istio

6.通过执行命令 istioctl upgrade -f demo.yaml 查看
在这里插入图片描述

至此,Istio已经从1.5升级到1.6。
通过 kubectl get pods -n istio-system 可获得Istio Pods的运行情况
在这里插入图片描述

检查工作

  1. Istio 集群是否健康
  2. 业务维度应用是否健康
  3. 在执行任何重大变更,避开业务时间,提做好备份或者备用方案。

在这里插入图片描述

点点关注不迷路!希望可以得到你的点点点点点赞!