Istio无疑是现在最流行的服务网格开源实现。它以透明层的方式构建在现有分布式应用中,同时也提供了各种API,可以与任何日志平台、监控系统或策略系统集成。Istio的多样化特性可以让你高效地运行分布式微服务架构,并提供一种统一的方式来保护、连接和监控微服务。本文介绍如何在 Minikube中安装 Istio,以方便开发者学习、使用 Istio 相关的知识。
启动 Minikube
首先,在本机启动已经安装好的 Minikube (如果还没有安装 Minikube, 可以参考在 Apple M1 电脑中安装 minikube进行安装), 执行
1 | minikube start |
如果成功启动,可以看到类似以下的系统输出
1 | 😄 Darwin 12.4 (arm64) 上的 minikube v1.24.0 |
下载 Istio
直接在命令行执行
1 | curl -L https://istio.io/downloadIstio | sh - |
也可以直接到 Istio 的 release 页面直接选择对应的版本进行下载, 因为要安装在 Apple M1 电脑上,我们选择 osx-arm64 的这个版本。
下载完成后,进入 isito-1.14.2 目录。因为我们默认的安装目录是 ~\Devel\isito-1.14.2, 所以执行
1 | cd ~\Devel\isito-1.14.2 |
将 ~\Devel\isito-1.14.2\bin 添加到系统 PATH 中去。
如果你使用的是 macOS 默认的 zsh, 则编辑用户目录下的 .zprofile, 加入类似下面的一行
1 | export PATH="$PATH:/Users/xxx/Devel/istio-1.14.2/bin" |
注意:用你的用户名替换上一行中的 xxx
为让修改立即生效,可以执行
1 | source ~/.zprofile |
检测是否可以正常安装
执行
1 | istioctl x precheck |
**在 MacOS 中第一次执行时,会出现安全提醒,到”系统偏好设置“ -> “安全性与隐私” 中去同意
如果看到类似以下的系统输出,则说明 istio 可以在你的系统中正常安装。
1 | ✔ No issues found when checking the cluster. Istio is safe to install or upgrade! |
安装
执行
1 | istioctl install |
如果看到系统显示类似以下的信息,则表明安装成功
1 | This will install the Istio 1.14.2 default profile with ["Istio core" "Istiod" "Ingress gateways"] components into the cluster. Proceed? (y/N) y |
验证
执行
1 | kubectl get ns |
可以看到系统显示如下信息
1 | NAME STATUS AGE |
其中, istio-system 就是 istio 相关系统组件使用的命名空间
执行
1 | kubectl get pods -n istio-system |
查看 istio-system 中的 pod
1 | NAME READY STATUS RESTARTS AGE |
可以看到, istio 在 minikube 中安装了两个 pod, 分别是 istio-ingressgateway 和 istiod
执行
1 | kubectl get svc -n istio-system |
可以查看对应的服务
1 | NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE |