上一篇文章《云原生service mesh微服务开发系列(二)Istio介绍》我们对Istio做了一下简单的介绍。本文我们来介绍下Istio的详细安装部署教程。
一、准备kubernetes集群
我们知道在这里整个微服务都是依赖于Kubernetes集群进行部署的,所以这里我们需要准备一下Kubernetes的服务器集群,在前面我们已经介绍了使用kuboard部署kubernetes集群,大家可以看看相关的教程:《使用kuboard安装k8s集群详细过程》。这里我们已经准备了一个单机版本的kubernetes集群,示例图如下:
二、升级服务器内核
这里如果我们使用centos7.x的服务器系统,那么linux内核时3.x版本的,因此这里我们需要把linux的内核升级下,保证linux内核最低版本为4.x,这里我们升级的版本时6.x的,所以能满足要求。升级教程可参考:Linux内核升级。切记这里要给每一台kubertes节点都要升级,我们这里升级后的版本时6.6.7版本,示例图如下:
三、安装helm
目前在kubernetes部署重,helm图表部署是非常主流的手法,所以这里我们也使用helm的方式部署Istio。所以我们需要在kubernetes节点上(任意节点)安装helm。本站在之前的文章中给大家介绍过helm相关的安装文档《Kubernetes集群安装helm的详细教程》。这里我们已经安装好了Helm。示例图如下:
四、部署Istio
接着我们使用Helm图表部署Istio。使用Helm图表部署Istio的话,我们主要会涉及到部署3个组件,分别是:
1、istio/base 2、Istiod 3、istio/gateway
下面我们直接开始:
1)创建名称空间
Istio服务网格化的话,所有的组件我们一般部署在一个单独的名称空间里面,所以我们创建一个专门用来部署Istio服务网格化的名称空间:
kubectl create ns istio-system
这里我们创建一个名称为istio-ns的名称空间,创建完成之后,示例图如下:
备注:
这里创建的名称空间只能是istio-system,如果不是这个名称,后续在安装组件的时候,即使我们指定了名称空间也安装不了,例如下图:
2)添加istio的helm图表
首先我们向helm仓库添加istio图表,命令如下:
#添加helm图表 helm repo add istio https://istio-release.storage.googleapis.com/charts #更新仓库列表 helm repo update
操作完成之后,示例图如下:
3)安装istio/base
接着我们按照istio的第一个组件istiobase组件,执行命令如下:
helm install istio-base istio/base -n istio-system
执行完毕之后如下图:
4)安装istio/istiod
接着我们继续安装istiod,执行命令如下:
helm install istiod istio/istiod -n istio-system --wait
执行完毕之后如下图:
5)安装istio/gateway
接着我们再安装istio/gateway,执行命令如下:
helm install istio-ingressgateway istio/gateway -n istio-system
执行完毕之后如下图:
以上我们3个组件就执行完毕了,我们使用命令查看下这些组件:
kubectl get svc -n istio-system
执行之后结果如下图
这里我们可以看到gateway的external-ip是pending状态,这主要是由于默认的istio-ingressgateway的type是loadbalancer,所以如果不要pending的话,我们可以修改配置文件,把LoadBalancer修改为NodePort,修改如下:
kubectl edit svc istio-ingressgateway -n istio-system
修改的地方如下图:
修改完成之后,这里的svc就及时生效了,然后我们再看状态已经不是pending状态了,如下图:
然后我们去kuboard管理界面看看刚才创建的istio-system名称空间下的service:
以上我们的istio组件就完整完毕了,后续我们在部署应用的时候再介绍如何使用istio网格服务化。
还没有评论,来说两句吧...