目录
一、前言
对于刚接触Istio的读者,多少都对它提供的无侵入流量治理、强大的仪表盘监控有深刻的印象,很想拥有一套Istio环境尽情的折腾起来。
可是搭建一套istio环境真的很容易吗?
抛开直接购买云厂商的Istio云服务不谈(那就不是0成本了),对于平时只有1台Windows笔记本的大多数开发者,从零搭建Istio环境会遇到很多问题:
首先,Istio运行于K8s之上,Istio安装的前提是先搭建K8s。而K8s部署在Linux上,又需要先搭建2节点(K8s搭建需要控制节点和计算节点)的Linux环境,例如通过Vmvare创建Linux虚拟机。
其次,因为国内安全上网的原因,只能使用离线方式安装K8s。官方建议离线安装使用kubeadm部署工具,但是kubeadm又对安装的k8s最低版本有要求,比如>1.21版本,这就需要我们自己处理kubeadm和离线下载的k8s组件镜像的依赖关系,版本不配套会消耗大量的精力处理安装问题。
最后,Istio由于上述原因同样需要离线方式安装,还是会遇到版本不配套的问题需要手动处理。
那么有没有便捷的方法能够直接拥有一套K8s环境来安装Istio呢?
二、从零安装Istio——基于Killercoda的K8s环境
Killercoda是一个慕课学习平台,提供交互式的Web命令行环境,引导用户完整的体验一个功能场景,例如使用K8s部署一套Deployment。
左侧是教学说明。包含功能场景的引导式流程以及对应的命令行输入,点击命令行可以复制到右侧执行;
右侧是交互式的shell命令行与k8s节点交互。Killercoda提供的k8s环境默认包含2个Ubuntu节点(1U2G),节点网络默认与外网互通没有安全上网的问题,而且带宽超出你的想象。
需要注意的是,超过10min不使用右侧命令行交互,节点的远程连接会被断开,建议点击右侧的+
快速建立新的远程连接;超过1小时不使用环境会被删除。
接下来,我们就用Killercoda提供的K8s环境安装istio。
三、Istio安装步骤
安装Istio之前,先了解下Istio官方提供的几种安装模式:
- 使用istioctl安装:istioctl是istio推出的用于管理istio的客户端工具,类似kubectl。使用istioctl可以快速的在k8s集群中安装istio的核心组件:istiod, IngressGateway。这种安装方式一般是用来尝鲜体验Istio的最新特性功能使用,不建议作为生产环境的安装方式;
- 使用 Istio Operator 安装:由于istioctl安装出来的istio组件,无法在业务层面维护istio的组件配置,例如无法设置安装的istiod数量。所以,istio官方基于k8s原生的Operator机制,提供了Istio Operator安装方式。这是生产环境建议的安装方式。
- 其他