istio安装与升级
1.下载istio二进制安装包
在官网下载https://istio.io/latest/docs/setup/getting-started/#download 执行使用命令行下载会很慢
可以点开Istio release直接进入gitlab下载amd64.tar.gz,然后上传到服务器进行安装
2.安装istioctl
解压 tar -zxvf istio-1.12.5-linux-amd64.tar.gz 进入目录 cd istio-1.12.5/bin 添加环境变量 vim ~/.bash_profile PATH=$PATH:/data/istio/tools/istio-1.12.5/bin 使环境变量生效 source ~/.bash_profile 添加自动补全功能 cp tools/istioctl.bash ~/.istioctl.bash source ~/.istioctl.bash 测试可以使用 istioctl manifest
3.安装istio
使用istioctl在k8s中安装istio
istioctl install --set profile=demo -y 测试,在k8s中可以看到命名空间istio-system kubectl get pods -n istio-system 修改istio-ingressgateway是svc为NodePort kubectl patch svc -n istio-system istio-ingressgateway -p '{"spec": {"type": "NodePort"}}'
4.卸载istio
istioctl manifest generate --set profile=demo | kubectl delete --ignore-not-found=true -f -
5.在新版本中,grafana.yaml jaeger.yaml kiali.yaml prometheus.yaml在profile demo下都不会自动安装,需要自己进入samples/addons下执行kubectl apply -f来进行安装
6.istio注入
执行yaml文件时手动注入 istioctl kube-inject -f jiuxi.deployment.yaml | kubectl apply -f - -n istio 给命名空间打标签,此命名空间中起的pod自动注入 kubectl label ns istio istio-injection=enabled
7.istio升级
istio升级需要分三步:istioctl升级与istio升级以及应用中istio的升级
a.istioctl升级
过程与安装过程相同,下载tar包解压,修改环境变量。
istioctl升级完后可见client版本更新,控制面和数据面还是老版本。
b.istio升级
注意之前的版本profile是啥现在的profile也需要设置成啥,如之前的是demo。先dump下新版本的yaml文件
istioctl profile dump demo > demo.yaml
编辑demo.yaml,查找jwt从第三方改为第一方,third-party-jwt 改为first-party-jwt,以解决证书挂载的问题。
开始升级
istioctl upgrade -f demo.yaml
输入y确定升级
升级成功。控制面升级成功,数据面有两个升级一个未升级。
c.升级之前注入的istio应用
如果老版本是用自动注入的话,使用自动注入的方法进行升级
kubectl rollout restart deploy -n <ns with auto injection>
如果老版本是手工注入的话,就需要使用手工注入的方式进行升级
istioctl kube-inject -f nginx.yaml | kubectl apply -f -
之前使用的是手工注入的方式,使用手工注入的方式升级,可见升级成功,数据面均为新版本。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?