一文学会服务网格与istio使用

11 篇文章 0 订阅
1 篇文章 0 订阅
本文介绍了服务网格如何帮助管理和控制分布式微服务间的复杂通信,以Istio为例,详细阐述了安装步骤、Bookinfo应用示例和如何在Kubernetes环境中部署及配置服务。重点强调了EnvoySidecar的作用和如何通过Istio简化服务间交互的管理。
摘要由CSDN通过智能技术生成

服务网格

现代应用程序通常被设计成微服务的分布式集合,每个服务执行一些离散的业务功能。服务网格是专门的基础设施层,包含了组成这类体系结构的微服务网络。 服务网格不仅描述了这个网络,而且还描述了分布式应用程序组件之间的交互。所有在服务之间传递的数据都由服务网格控制和路由。

随着分布式服务的部署——比如基于 Kubernetes 的系统——规模和复杂性的增长,它可能会变得更加难以理解和管理。 需求可以包括发现、负载平衡、故障恢复、度量和监视。微服务体系结构通常还有更复杂的操作需求,比如 A/B 测试、canary 部署、速率限制、访问控制、加密和端到端身份验证。

服务到服务的通信使分布式应用成为可能。在应用程序集群内部和跨应用程序集群路由这种通信变得越来越复杂。 Istio 有助于减少这种复杂性,同时减轻开发团队的压力。

Istio 安装

先决条件

这里我使用的是minikube ,因此在安装之前,首先要给minikube一定的空间

minikube start --memory=16384 --cpus=4 --kubernetes-version=v1.26.1

新开一个终端,打开minikube通道

minikube tunnel

下载istio

使用自动化工具下载并提取最新版本的istio

#curl -L https://istio.io/downloadIstio | sh -
#cd istio-1.20.2
#export PATH=$PWD/bin:$PATH
#istioctl install --set profile=demo -y
✔ Istio core installed
✔ Istiod installed
✔ Egress gateways installed
✔ Ingress gateways installed
✔ Installation complete

安装目录包含:

  • samples/ 目录下的示例应用程序
  • bin/ 目录下的 istioctl 客户端二进制文件。

使用istio 安装bookinfo

创建命名空间,并打上istio-injection=enable之后,这个命名空间下的pod会自动注入Envoy Sidecar

#kubectl create namespace fox    
namespace/fox created
#kubectl label namespace fox istio-injection=enable
namespace/fox labeled

Bookinfo介绍

这个应用模仿在线书店的一个分类,显示一本书的信息。 页面上会显示一本书的描述,书籍的细节(ISBN、页数等),以及关于这本书的一些评论。

  • Bookinfo 应用分为四个单独的微服务:
  • productpage:这个微服务会调用 details 和 reviews 两个微服务,用来生成页面。
  • details:这个微服务中包含了书籍的信息。
  • reviews:这个微服务中包含了书籍相关的评论。它还会调用 ratings 微服务。
  • ratings:这个微服务中包含了由书籍评价组成的评级信息。

reviews 微服务有 3 个版本:

  • v1 版本不会调用 ratings 服务。
  • v2 版本会调用 ratings 服务,并使用 1 到 5 个黑色星形图标来显示评分信息。
  • v3 版本会调用 ratings 服务,并使用 1 到 5 个红色星形图标来显示评分信息。


Bookinfo 应用中的几个微服务是由不同的语言编写的。 这些服务对Istio并无依赖,但是构成了一个有代表性的服务网格的例子:它由多个服务、多个语言构成,并且 reviews 服务具有多个版本。

部署应用

要在 Istio 中运行这一应用,无需对应用自身做出任何改变。 您只要简单的在 Istio 环境中对服务进行配置和运行,具体一点说就是把 Envoy Sidecar 注入到每个服务之中。 最终的部署结果将如下图所示:

启动应用服务

kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml -n fox

通过minikube 进行端口暴露

minikube service -n fox productpage --url

安装面板

kubectl apply -f sample/addons
minikube service -n istio-system kiali --url

  • 18
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值