部署 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 -