学习
实践
活动
专区
工具
TVP
写文章

服务治理平台Istio的安装与服务部署

服务网格是一种新的服务治理的架构模式。

服务网格(service mesh)将服务间的通信和管理控制功能从业务功能中剥离,从应用层转移到基础设施层。对于原本应用就不关心的服务发现、服务注册、服务路由和负载均衡功能交给服务网格去处理。服务网格和spring cloud的服务管理方式完全不同, spring cloud 需要在应用中引入对应的API对服务进行治理,而服务网格则不需要应用进行改造就能实现服务治理,而是通过独立的代理服务(Sidecar)完成,由代理来负责找到目的服务并负责通讯的可靠性和安全等问题。

01

Istio概念

在实际应用中,服务网格通常是由一系列轻量级的网络代理组成的,它们与应用程序部署在一起,但应用程序不需要知道它们的存在。Istio是一个开源项目,采用kubernetes进行服务部署和集群管理,采用Istio处理服务通讯和治理,两者相辅相成。

Envoy作为服务网格的Sidecar,负责服务请求的代理功能,完成负载均衡、服务发现、熔断器、监控检查和流量拆分等功能。

Pilot负责收集和验证配置并将其传播到各种Istio组件。它从Mixer和Envoy中抽取环境特定的实现细节,为他们提供用户服务的抽象表示,独立于底层平台。Pilot公开了用于服务发现 、负载均衡池和路由表的动态更新的 API。这些API将Envoy从平台特有的细微差别中解脱出来,简化了设计并提升了跨平台的可移植性。运维人员可以通过Pilot的Rules API指定高级流量管理规则。

Mixer负责在服务网格上执行访问控制和使用策略,并从Envoy代理和其他服务收集遥测数据。Mixer在处理不同基础设施后端的灵活性是通过使用通用插件模型实现的。单个的插件被称为适配器,它们允许Mixer与不同的基础设施后端连接,这些后台可提供核心功能包括日志,监控,配额,ACL检查等。

Istio-Auth提供强大的服务间认证和终端用户认证,使用交互TLS,内置身份和证书管理。

02

Istio安装

首先安装Kubernetes1.9.5,再安装Istio0.6.0。Kubernetes安装参见公众号:inps 中的《使用kubeadm安装部署Kubernetes1.7.5》,不在此介绍。

下载Istio0.6.0版本,两种方式都可以

wget https://github.com/istio/istio/releases/download/0.6.0/istio-0.6.0-linux.tar.gz

curl -L https://git.io/getLatestIstio | sh -

2. 进入istio目录,添加istioctl 到PATH

cd istio-0.6.0

export PATH=$PWD/bin:$PATH

3. 安装, 这里为了方便安装了不带TLS的版本

kubectl apply -f install/kubernetes/istio.yaml

4. 查看是否安装正常,看istio-pilot, istio-mixer, istio-ingress三个服务是否部署

kubectl get svc -n istio-system

kubectl get pods -n istio-system

03

服务治理验证

Bookinfo应用的架构如下:

构建应用程序容器

kubectl apply -f samples/bookinfo/kube/bookinfo.yaml

# kubectl get services

# kubectl get pods

# kubectl get ingress -o wide, 确定 ingress入口

在浏览器中打开应用程序页面,地址为istio-ingress的External IP

http://10.100.50.23/productpage

在默认情况下访问请求会随机负载到三个版本的应用上,使用route-rule-reviews-v2-v3.yaml会将流量负载到v2和v3版本。

istioctl create -f samples/bookinfo/kube/route-rule-reviews-v2-v3.yaml

istioctl delete -f samples/bookinfo/kube/route-rule-reviews-v2-v3.yaml

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180502G15H8L00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券