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

服务网格

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

随着分布式服务的部署——比如基于 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/316726.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

qt学习:多界面跳转+信号+槽函数

目录 概念 分类 多界面编程思路 新建界面 注意 头文件 无数据传输跳转界面 有数据传输跳转界面 对象公有接口 界面之间数据传输 信号与槽函数进行数据传输跳转界面 信号: 槽: 概念 格式1 关联信号和发送信号 格式2 通信步骤 自定义信号和槽函数 总结 实…

手写webpack的loader

一、概念 帮助webpack将不同类型的文件转换为webpack可识别的模块。 二、Loader执行顺序 分类 pre:前置loadernormal:普通loaderinline:内联loaderpost:后置loader 执行顺序 4类loader的执行顺序为per>normal>inline&…

【贪心】重构字符串

/*** 思路:如果s长度小于2,直接返回s,假设字符串s的长度为n。* n为偶数,如果字符串中的某个字符数量超过 n/2 则肯定会存在相邻的字符。* n为奇数,如果字符串中的某个字符的数量超过 (n1&am…

绘图工具用的好,头发掉的少

程序员不管是在学习,还是工作过程中,很多时候都需要画图,如产品分析、架构设计、方案选型等,良好的绘图不仅可以让绘图者的思路清晰,也可以让聆听者更好的理解。用好画图,升职加薪少不了!今天介…

大数据技术之Hudi

第1章 Hudi概述 1.1 Hudi简介 Apache Hudi(Hadoop Upserts Delete and Incremental)是下一代流数据湖平台。Apache Hudi将核心仓库和数据库功能直接引入数据湖。Hudi提供了表、事务、高效的upserts/delete、高级索引、流摄取服务、数据集群/压缩优化和…

PPT文档怎么转换PDF?一个方法教你快速实现

在我们的办公、学习中难免会遇到需要将ppt转pdf文件的需求。现在的网络中有各种各样的PDF转换工具,有些操作很复杂,有些需要下载软件非常麻烦。接下来,给大家分享一款草最简单还不用下载软件的PPT转PDF(https://www.yasuotu.com/p…

Linux中常使用的命令之ls、cd、pwd、mkdir、rmdir

ls: 列出目录 cd:切换目录 pwd:显示目前的目录 mkdir:创建一个新的目录 -m :配置文件的权限-p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来! rmdir:删除一个空的目录 注意这…

2024年该如何招聘科技人员

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版,欢迎购买。点击进入详情 过去几年科技领域发生了令人难以置信的动荡。我可以有把握地说,今天的就业市场比 2000 年代我第一次成为开发人员时更具挑战性。人工智能的繁荣与前所…

conda环境下cannot write keep file问题解决

1 问题描述 conda环境下执行如下命令报错: pip install githttps://github.com/wenet-e2e/wenet.git 错误信息如下: (pt) PS D:\code\ptcontainer> pip install githttps://github.com/wenet-e2e/wenet.git Looking in indexes: http://pypi.doub…

Qt OpenGL初探 - 画坐标轴

Qt OpenGL初探 - 画坐标轴 引言一、过程详解1.1 项目创建1.2 实现细节 二、核心代码三、官方文档3.1 官网地址3.2 官方手册的使用 引言 Qt OpenGL模块可以很方便地将OpenGL应用在Qt程序中,本文使用其画了一个3D坐标轴(见上图),并详细讲解了具体的编码过程与官方手册…

优化的实时换脸项目——DeepFaceLive

DeepFaceLive是一款基于人工智能技术的换脸工具,可以实现实时面部捕捉和换脸效果。它利用深度学习和计算机视觉算法,能够以惊人的准确度和速度将脸部特征无缝地映射到任何人的脸上。DeepFaceLive的特点是可以实时换脸,让用户通过网络摄像头应…

JVM基础(12)——G1调优

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 学习必须往深处挖&…

BitMap源码解析

文章目录 前言数据结构添加与删除操作 JDK中BitSet源码解析重要成员属性初始化添加数据清除数据获取数据size和length方法集合操作:与、或、异或优缺点 前言 为什么称为bitmap? bitmap不仅仅存储介质以及数据结构不同于hashmap,存储的key和v…

没啥特长又想搞钱的进:2024副业小项目推荐

利用副业赚钱,绝对不是找个项目就做那么简单。实际上,网上很多副业项目都是看着高大上,做起来还不如送外卖、打零工实在。思路决定出路,你需要的不是具体的副业项目,你需要的是副业思维。 思维一;经验的二次利用比如你…

【iOS】数据持久化(四)之FMDB基本使用

正如我们前面所看到的,原生SQLite API在使用时还是比较麻烦的,于是,开源社区就出现了一系列将SQLite API进行封装的库,其中FMDB的被大多数人所使用 FMDB和SQLite相比较,SQLite比较原始,操作比较复杂&#…

Unity摇杆+键鼠控制位移、旋转

1、位移 首先我们找到两张图片,一个大圆一个小圆,像这样: 结构是这样的: 然后,新建一个场景,用胶囊去做玩家,摄像机在胶囊下,并且在场景中放两个cube作为参照物 像这样搭好后&#…

【电源专题】案例:在EN脚加个电阻就能解决电源下电输出振荡?

案例背景:在某产品上使用一颗升压芯片发现下电输出波形振荡,但此产品并不是第一个使用此升压芯片的。早先此升压芯片使用在其他产品上没有报过这个异常。 分析方法:使用DEMO板,查看标准DEMO板无异常。将异常板卡上的参数与全部换到DEMO板上发现同样存在异常。 推测原因:…

学习就要从简单的开始嘛,开始学一个个人博客吧

做一个个人博客第一步该怎么做? 好多零基础的同学们不知道怎么迈出第一步。 那么,就找一个现成的模板学一学呗,毕竟我们是高贵的Ctrl c v 工程师。 但是这样也有个问题,那就是,那些模板都,太!…

基于ssm的校园预点餐系统(有报告)。Javaee项目。ssm项目。

演示视频: 基于ssm的校园预点餐系统(有报告)。Javaee项目。ssm项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spring Sp…

【Databend】行列转化:一行变多行和简单分列

文章目录 数据准备和需求生成序列和分隔函数根据分隔符变多行JSON 数据简单分列总结 数据准备和需求 行列转化在实际工作中很常见,其中最常见的有一行变多行,有下面一份数据: drop table if exists fact_suject_data; create table if not …