概述

在本文中,我们将会讲解如何进行Istio的安装。

前置工作

准备 Kubernetes 环境。
本文以 Istio 1.8.3 版本为例进行演示,建议安装 Kubernetes 的 1.16 版本。

版本说明

K8s 的版本与 Istio 的版本之间,有着对应的兼容关系,如下表所示:

Istio版本 K8s版本
1.8 1.16, 1.17, 1.18, 1.19
1.9 1.17, 1.18, 1.19, 1.20
1.10 1.18, 1.19, 1.20, 1.21

本文中,我们以 K8s 1.16 版本为例,来演示 Istio 1.8.3 的部署方案,其他版本整个部署方式类似。

StepByStep

下载

转到 Istio 发布页面 ,下载针对你操作系统的安装文件。

  1. cd /home/work
  2. wget https://github.com/istio/istio/releases/download/1.8.3/istio-1.8.3-linux-amd64.tar.gz
  3. tar -zxvf istio-1.8.3-linux-amd64.tar.gz
  4. rm -rf istio-1.8.3-linux-amd64.tar.gz

目录查看

  1. cd ./istio-1.8.3
  2. ls -lrt

在该目录下包含如下内容:

  • 示例应用文件: samples/ 目录下。
  • istioctl 客户端: bin/ 目录下。
  • istio 配置相关配置文件: manifests/ 目录下。

配置

将 istioctl 客户端所在目录添加至 PATH 环境变量中:

  1. export PATH=$PWD/bin:$PATH

或者直接添加至 ~/.bashrc 文件中:

  1. export PATH=/home/work/istio-1.8.3/bin:$PATH

验证一下吧:

  1. istioctl version

安装

下面,我们需要准备如下一个配置文件 istio-operator-config.yaml :

  1. kind: IstioOperator
  2. spec:
  3. profile: default
  4. tag: 1.8.3
  5. namespace: istio-system
  6. meshConfig:
  7. enableTracing: false

然后执行如下安装命令即可:

  1. istioctl install -f ./istio-operator-config.yaml

稍等片刻,就可以看到相关服务均已经正常安装成功了:
image.png

开启 Sidecar 自动注入

当Istio安装完成后,我们还可以指定一些 namespace 可以默认自动注入 Envoy Sidecar 从来实现流量代理。
例如:

  1. kubectl create namespace istio-demo
  2. kubectl label namespace istio-demo istio-injection=enabled
  3. # namespace/istio-demo labeled

此时,针对 istio-demo namespace 下所有创建的 Pod 都会自动注入 Sidecar 进行流量代理。