istio 的部署
在 Kubernetes 集群中部署 istio 是最方便的,参考 Installing on Kubernetes。
- 单纯了解学习,部署 istio 预览版
- 生产使用,部署 istio 生产版
无论采用哪种方式部署,都需要下载 istio 部署文件,准备一个 kubernetes 集群。部署文件到 github 下载,Kubernetes 集群可以使用 minikube 部署一个单机版的 kubernetes。
本手册中部署的 istio 版本是 1.2.5:
Istio 1.2 has been tested with these Kubernetes releases: 1.12, 1.13, 1.14.
准备 kubernetes 集群
单机版 Kubernetes 集群创建:minkube 使用手册。
多机版 Kubernetes 集群参考(下面三份文档比较老,以后会更新):
- 《Kubernetes1.12从零开始(三):用kubeadm部署多节点集群》
- 《Kubernetes1.12从零开始(五):自己动手部署kubernetes》
- 《Kubernetes1.12从零开始(六):从代码编译到自动部署》
下载 istio 部署文件
从 github 的 release 页面下载 istio,例如:
wget https://github.com/istio/istio/releases/download/1.2.5/istio-1.2.5-linux.tar.gz
本手册的操作环境是 mac + minikube,下载的是 istio-1.2.5-osx.tar.gz:
wget https://github.com/istio/istio/releases/download/1.2.5/istio-1.2.5-osx.tar.gz
解压后得到 istio-1.2.5,里面有安装文件和操作命令(bin/istioctl):
$ tree -L 1 istio-1.2.5
istio-1.2.5
├── LICENSE
├── README.md
├── bin
├── install
├── istio.VERSION
├── samples
└── tools
或者直接 clone 整个 istio 项目,然后切换到要使用的版本,这种方式需要自己编译 istio,编写部署文件:
git clone https://github.com/istio/istio.git
git checkout 1.2.5 -b 1.2.5
源码目录 install/kubernetes 中提供了一些部署文件:
➜ istio git:(1.2.5) ✗ tree install/kubernetes -L 3
install/kubernetes
├── README.md
├── ansible
│ ├── OWNERS
│ ├── README.md
│ ├── ansible.cfg
│ ├── istio
│ │ ├── defaults
│ │ ├── meta
│ │ ├── tasks
│ │ └── vars
│ └── main.yml
├── global-default-sidecar-scope.yaml
├── helm
│ ├── README.md
│ ├── helm-service-account.yaml
│ ├── istio
│ │ ├── Chart.yaml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── charts
│ │ ├── example-values
│ │ ├── files
│ │ ├── requirements.yaml
│ │ ├── templates
│ │ ├── test-values
│ │ ├── values-istio-demo-auth.yaml
│ │ ├── values-istio-demo-common.yaml
│ │ ├── values-istio-demo.yaml
│ │ ├── values-istio-minimal.yaml
│ │ ├── values-istio-remote.yaml
│ │ ├── values-istio-sds-auth.yaml
│ │ └── values.yaml
│ └── istio-init
│ ├── Chart.yaml
│ ├── LICENSE
│ ├── README.md
│ ├── files
│ ├── templates
│ └── values.yaml
├── mesh-expansion.yaml
└── namespace.yaml
部署操作见后面的章节。