部署 Istio

在 Istio 官方文档上提供了通过 Istioctl 安装通过 Helm 安装通过 Operator 安装三种方式,其中,基于 Helm 方式在 Istio 1.5 版之后已被废弃,Operator 方式目前仍处于实验阶段,本文选择采用 Istioctl 方式进行安装。

获取 Istio

首先访问Istio release页面下载与你操作系统匹配的安装文件。在 macOS 或 Linux 系统中,也可以通过以下命令直接下载最新版本的 Istio:

$ curl -L https://istio.io/downloadIstio | sh -

解压后,安装目录包括以下内容:

目录 包含内容
bin 包含 istioctl 的客户端文件
install 包含 Consul、GCP 和 Kubernetes 平台的 Istio 安装脚本和文件
samples 包含示例应用程序
tools 包含用于性能测试和在本地机器上进行测试的脚本

bin目录下的istioctl客户端路径增加到path环境变量中,macOS 或 Linux 系统的增加方式如下:

$ export PATH=$PWD/bin:$PATH

如果你在使用 bash 或 ZSH 的话,可以选择启动Auto Completion Option

默认安装 Istio

部署 Istio,最简单的方式是安装 default 配置文件,直接使用以下命令即可:

$ istioctl manifest install

此命令将在你的 Kubernetes 集群上安装default配置文件。default配置文件建立生产环境的良好起点,这与旨在评估广泛的 Istio 功能特性的较大的demo配置文件不同。各种不同配置文件之间的差异如下表所示:

default demo minimal sds
核心组件
istio-citadel X X X
istio-egressgateway X
istio-galley X X X
istio-ingressgateway X X X
istio-nodeagent X
istio-pilot X X X X
istio-policy X X X
istio-sidecar-injector X X X
istio-telemetry X X X
插件
grafana X
istio-tracing X
kiali X
prometheus X X X

安装default配置文件后,如果需要其他组件或者插件,可以进行独立安装。譬如要在default配置文件之上启用 Grafana Dashboard,用下面的命令设置addonComponents.grafana.enabled参数即可:

$ istioctl manifest install --set addonComponents.grafana.enabled=true

安装 demo 配置

demo这个词语可能会让使用者产生误解,其实 Istio 的demo配置是默认安装所有组件的全功能配置,从上面表格中配置与组件的对应情况中可以印证这一点。你可以使用以下istioctl命令来列出 Istio 配置文件名称:

$ istioctl profile list
Istio configuration profiles:
    remote
    separate
    default
    demo
    empty
    minimal

通过在命令行上设置配置文件名称安装其他 Istio 配置文件到群集中,使用以下命令安装demo配置文件:

$ istioctl manifest install --set profile=demo

验证安装成功

你可以使用verify-install命令检查 Istio 安装是否成功,它将集群上的安装与你指定的清单进行比较。

如果未在部署之前生成清单,请运行以下命令以现在生成它:

$ istioctl manifest generate <your original installation options> > $HOME/generated-manifest.yaml

然后运行以下verify-install命令以查看安装是否成功:

$ istioctl verify-install -f $HOME/generated-manifest.yaml

卸载 Istio

可以使用以下命令来卸载 Istio

$ istioctl manifest generate <your original installation options> | kubectl delete -f -