linux cpu占用率如何看
298
2022-10-29
第九章 九析带你轻松完爆 service mesh - istio upgrade 升级
系列文章:总目录索引:九析带你轻松完爆 istio 服务网格系列教程
目录
1 前言
2 升级前的准备
3 升级步骤
3.1 下载新版本的 istio
3.2 解压缩 istio
3.3 设置 istioctl 环境变量
3.4 设置 istio 自动补全功能
3.5 验证新版本 istio 是否兼容老版本
3.6 创建升级配置文件
3.7 升级 istio
3.7.1 资源等待错误
3.7.2 资源冲突错误
3.8 重设数据平面
1 前言
今天杭州阴天,哥的心情不怎么嗨!因为哥前期都在使用 1.4.5 版本,但是这周 istio 官方没经我允许就擅自升级到了 1.5 版本,打了我一个措手不及。但是互联网这十几年没少教育我,于是痛定思痛决定拥抱变化。
2 升级前的准备
就像你撸管前要先把纸准备好一样,在升级 istio 前,要先做一些前期准备工作。
1 检查 istio 版本是不是 1.4.4 或更高版本2 确定 istio 安装采用的是 istioctl 安装
使用如下命令查看当前 istio 安装版本:
istioctl version
由此可知,istio 当前的客户端、控制平面、数据平面的版本都是 1.4.5 版本。
3 升级步骤
3.1 下载新版本的 istio
执行如下命令下载最新版的 istio:
curl -L | sh -
也可以直接下载指定版本的 istio:
curl -L | ISTIO_VERSION=1.5.0 sh -
你能怎么办?你什么感觉?是不是就像大便找不到厕所?或者找到厕所却发现没坑?
实在下不到,你也不要悲愤,可以告诉哥,哥直接发给你,不用谢!
3.2 解压缩 istio
安装 istio 前,首先解压缩:
tar -zxvf istio-1.5.0-linux.tar.gz
关键目录、文件说明如下:
1 bin/istioctl # 客户端工具2 install # 底层支持平台的资源文件,istio 可支持 consul、gcp、k8s 平台3 samples # 学习样例
3.3 设置 istioctl 环境变量
所以首先需要通过如下命令进行删除:
export PATH=`echo $PATH | sed -e 's/:\/root\/istio\/istio-1.4.5\/bin//g'`
将新版本 istioctl 路径添加到系统环境路径中:
cd istio-1.5.0export PATH=$PATH:$PWD/binistioctl version
3.4 设置 istio 自动补全功能
将 istio 安装包 tools 目录下的 istioctl.bash 拷贝到用户根目录下:
cp istio-1.5.0/tools/istioctl.bash ~
编辑 ~/.bash_profile 文件,在文件末尾添加如下内容:
PATH=$PATH:$HOME/binPATH=$PATH:/root/istio/istio-1.5.0/binexport PATHsource /root/.istioctl.bash
添加完毕后,加载配置使之生效:
source ~/.bash_profile
3.5 验证新版本 istio 是否兼容老版本
执行如下命令查看新版本 istio 可兼容的版本范围:
istioctl manifest versions
明确新版本 istio 可升级,则继续往下操作。
3.6 创建升级配置文件
我以前安装 istio 采用的 profile 是 demo:
istioctl manifest apply --set profile=demo
也就是同样型号比如 G 级别车,一共有三个版本,每个版本就是一个 profile,每个 profile 的参数或者配置都有区别。
但是可惜地是,istio 安装时支持 set 参数,比如你可以使用如下命令安装:
istioctl manifest apply --set profile=demo
但是 istioctl upgrade 命令不支持 --set 选项,因此,如果前期在安装的时候使用了 --set 选项,那么在升级时需要创建一个等效的配置选项文件。
使用如下命令创建 profile 为 demo 的等效配置文件:
istioctl profile dump demo > demo.yaml
3.7 升级 istio
执行如下命令来升级 istio:
istioctl upgrade -f demo.yaml
如果升级过程很顺畅,就可以跳过此小节继续下面的内容;如果升级过程并不顺利,可以根据下面的介绍进行修改。
3.7.1 资源等待错误
error installer Failed to wait for resource: resources not ready after 10m0s: timed out waiting for the conditionDeployment/istio-system/istiod
可以指定 aliyun 作为镜像源:
touch /etc/docker/daemon.jsonvim /etc/docker/daemon.json
添加如下内容:
{"registry-mirrors": ["daemon-reloadsystemctl restart docker
3.7.2 资源冲突错误
如果在安装过程中出现如下错误:
Error: failed to read the current Istio version, error: different versions of Istio components found
多半是因为镜像版本冲突,可以执行如下命令查看:
istioctl version
改正办法是删除错误版本的 deployment 后再升级(istioctl upgrade):
kubectl delete deployments.apps -n istio-system istio-egressgateway
3.8 重设数据平面
从上面的截图中,其实可以发现一个端倪,就是 data plane version 有一个 proxy 仍是 1.4.5。产生这样的原因是我在升级 istio 版本前就已经手工注入了一个 deployment,现在需要重置原有数据平面。执行如下命令重置原有被注入的 nginx deployment:
istioctl kube-inject -f nginx-deploy.yaml | kubectl apply -f -
自此,九析带你轻松完爆 istio 的升级。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~