istio是一个可以实现微服务之间的互联、微服务间通信的鉴权、对访问微服务的流量的控制以及对微服务进行监视的一个服务网格,其通过将代理注入到微服务所在的pod的方式,实现上述功能,可以让应用开发人员只专注于业务本身,提高了开发效率,下面我们就来在k8s集群上部署一下istio,并进行istio的实例测试(官方给的BookInfo微服务)
一、istio的安装:
集群环境:
master:Ubuntu16.04LTS 4cpu 4GB内存
node:(virtualbox)Ubuntu16.04 4cpu 4GB内存
1、安装方式:
采用helm去安装,helm相当于一个k8s的包管理工具,每个包称为一个Chart,一个Chart是一个目录,其包含了k8s资源相关的YAML文件;
2、首先,需要安装helm:
执行:
wget https://storage.googleapis.com/kubernetes-helm/helm-v2.12.3-linux-amd64.tar.gz
tar -zxvf helm-v2.12.3-linux-amd64.tar.gz
cd linux-amd64/
cp helm /usr/local/bin/
输入helm version检查helm client是否安装成功
3、用helm安装istio:
a.下载istio的发布文件:
tar -zvxf istio-1.2.9-linux.tar.gz #解压
echo export PATH=$PATH:/home/rongshuai/istio/istio-1.2.9/bin >> ~/.bashrc
source ~/.bashrc #上面是将istioctl添加到环境变量中去
执行istioctl --help查看是否成功添加到了环境变量:
添加成功
b.为istio创建一个命名空间:
kubectl create namespace istio-system
命名空间创建成功
c.通过kubectl apply安装istio的CRDs,CRDs被提交到k8s的API-server需要等待几秒钟