Istio学习笔记- 服务网格

Istio 服务网格

参考:Istio / Istio 服务网格

Istio 使用功能强大的 Envoy 服务代理扩展了 Kubernetes,以建立一个可编程的、可感知的应用程序网络。Istio 与 Kubernetes 和传统工作负载一起使用,为复杂的部署带来了标准的通用流量管理、遥测和安全性。

Istio 解决了开发人员和运营商在分布式微服务架构中面临的挑战。无论您是从头构建还是将现有的应用程序迁移到本地云,Istio 都能提供帮助

通过在部署的每个应用程序中添加代理“sidecar”,Istio 让您可以为应用程序感知流量管理、不可思议的可观察性和强大的安全功能编程到网络中。

服务网格介绍

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

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

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

Istio 介绍

Istio 是一个开源服务网格,它透明地分层到现有的分布式应用程序上。 Istio 强大的特性提供了一种统一和更有效的方式来保护、连接和监视服务。 Istio 是实现负载平衡、服务到服务身份验证和监视的路径——只需要很少或不需要更改服务代码。

它强大的控制平面带来了重要的特点,包括:

  • 使用 TLS 加密、强身份认证和授权的集群内服务到服务的安全通信
  • 自动负载均衡的 HTTP, gRPC, WebSocket,和 TCP 流量
  • 通过丰富的路由规则、重试、故障转移和故障注入对流量行为进行细粒度控制
  • 一个可插入的策略层和配置 API,支持访问控制、速率限制和配额
  • 对集群内的所有流量(包括集群入口和出口)进行自动度量、日志和跟踪

Istio 是为可扩展性而设计的,可以处理不同范围的部署需求。Istio 的控制平面运行在 Kubernetes 上,您可以将部署在该集群中的应用程序添加到您的网格中,将网格扩展到其他集群,甚至连接 VM 或运行在 Kubernetes 之外的其他端点。

Istio 由两个部分组成:控制平面和数据平面。

数据平面是业务之间的通信平面。如果没有一个服务网格,网络就无法理解正在发送的流量,也无法根据它是哪种类型的流量,或者它从谁那里来,到谁那里去做出任何决定。

服务网格使用代理拦截所有的网络流量,允许根据您设置的配置提供广泛的应用程序感知功能。

代理与您在集群中启动的每个服务一起部署,或者与运行在虚拟机上的服务一起运行。

控制平面获取您所需的配置和服务视图,并动态地对代理服务器进行编程,随着规则或环境的变化更新它们。

概念

流量管理

Istio 的流量路由规则可以让您轻松地控制服务之间的流量和 API 调用。 Istio 简化了服务级别属性(如断路器、超时和重试)的配置,并使设置重要任务(如 A/B 测试、canary 部署和基于百分比的流量分割的分阶段部署)变得容易。 它还提供了开箱即用的故障恢复特性,帮助您的应用程序更健壮地应对依赖服务或网络的故障。

可观测性

Istio 的遥测技术包括详细的指标、分布式跟踪和完整的访问日志。有了 Istio,您就可以得到全面全面的服务网格可观察性。

安全性能

微服务有特殊的安全需求,包括防止中间人攻击、灵活的访问控制、审计工具和相互的 TLS。 Istio 包括一个全面的安全解决方案,使运营商能够解决所有这些问题。 它提供了强大的身份、强大的策略、透明的 TLS 加密,以及验证、授权和审计(AAA)工具来保护您的服务和数据。

Istio 的安全模型是基于默认安全的,旨在提供深度防御,允许您部署安全的应用程序,甚至跨不可信的网络。

TLS 是Transport Layer Security的缩写,中文名为传输层安全性协议。这是一个用于在互联网上保护通信的协议,尤其是在网页浏览器和服务器之间。其目的是确保数据在传输过程中的完整性、机密性和身份验证。

TLS 的前身是 SSL(Secure Sockets Layer),但后来由于一些安全漏洞和设计的局限性,SSL 被逐渐淘汰,取而代之的是 TLS。目前,大多数的网页浏览和服务都使用 TLS 来加密数据。

当你访问一个使用 HTTPS(HyperText Transfer Protocol Secure)的网站时,你的浏览器和服务器之间就建立了一个 TLS 连接。这意味着两者之间传输的所有数据都被加密,使得第三方难以窃取或篡改这些信息。

TLS 协议涉及到握手、密钥交换、数据加密和身份验证等多个步骤,确保两个通信方能够安全、秘密地交换信息。

-------------------------------------

启用安全性

Istio 将在网格中配置服务以在相互通信时尽可能使用 mTLS。

mTLSMutual TLS的缩写,中文可以翻译为双向TLS

在普通的TLS连接中,只有客户端验证服务器的身份。但在mTLS中,服务器和客户端都会验证对方的身份。这种双向身份验证增加了额外的安全性,确保只有拥有有效证书的客户端和服务器可以通信。

因此,mTLS尤其适用于需要高安全性的场景,例如银行、金融、医疗和企业内部应用等。

 默认情况下,Istio 将以 permissive mTLS 模式运行,这意味着服务将接受加密和未加密的流量,以允许来自非网格服务的流量保持功能。 在所有服务都加入网格后,您可以改变认证策略,只允许加密流量。 然后您可以确定所有流量都已加密。

permissive mTLS宽松的双向TLS认证模式。在这种模式下,可以进行双向TLS认证,也可以不进行认证从而发送明文数据。

Istio 将配置网格中的服务,使其在相互交谈时尽可能使用 mTLS。 Istio 默认以"允许的 mTLS" 模式运行,这意味着服务将同时接受加密和未加密的流量,以允许来自非网格服务的流量保持正常流通。 在所有的服务都进入网格后,您可以改变认证策略,只允许加密的流量,然后您可以确定所有的流量都是加密的。

Istio 的两类 API

Istio 为平台所有者和服务所有者提供 API。根据您扮演的角色,您只需要考虑一个子集。 例如,平台所有者将拥有安装、认证和授权资源。流量管理资源将由服务所有者处理。

在虚拟机上连接服务

Istio 不仅适用于 Kubernetes;还可以将虚拟机(或裸机)上的服务添加到网格中, 以获得 Istio 提供的所有功能,例如 TLS、丰富的遥测和高级流量管理功能。

监测您的服务

使用 Kiali 检查流经您的网格的流量,或者使用 Zipkin 或 Jaeger追踪请求。

使用 Istio 的默认 Grafana 仪表板,自动报告在网格中运行的服务的关键信号。

安装

借助 istioctl,您可以使用内置配置文件之一轻松安装 Istio。 当您自定义安装以满足您的要求时,建议使用 IstioOperator 自定义资源 (CR) 定义您的配置。 这使您可以选择将安装管理工作完全委托给 Istio Operator,而不是使用 istioctl 手动完成。 仅将 IstioOperator CR 用于控制平面,将额外的 IstioOperator CR 用于网关,以提高升级的灵活性。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ARM PMU

PMU单元概览 ARM PMU概要 PMU作为一个扩展功能,是一种非侵入式的调试组件。 对PMU寄存器的访问可以通过CP15协处理器指令和Memory-Mapped地址。 基于PMUv2架构,A7处理器在运行时可以收集关于处理器和内存的各种统计信息。对于处理器来说这些统计信息中…

java计算两个字符串日期相隔天数

java计算两个字符串日期相隔天数 public static void main(String[] args) throws ParseException {Scanner sc new Scanner(System.in);System.out.print("请输入计算开始的日期(yyyy-MM-dd):");String startTime sc.next();System.out.print("请输入计算结…

OpenAI暂停ChatGPT Plus新用户注册;迷宫与图神经网络

🦉 AI新闻 🚀 OpenAI暂停ChatGPT Plus新用户注册,考虑用户体验 摘要:OpenAI决定暂停ChatGPT Plus新用户注册,以应对开发日后使用量激增带来的压力,确保每个人都能享受良好的体验。根据调查机构Writerbudd…

2023.11.14 hivesql的容器,数组与映射

目录 https://blog.csdn.net/m0_49956154/article/details/134365327?spm1001.2014.3001.5501https://blog.csdn.net/m0_49956154/article/details/134365327?spm1001.2014.3001.5501 8.hive的复杂类型 9.array类型: 又叫数组类型,存储同类型的单数据的集合 10.struct类型…

csrf学习笔记总结

跨站请求伪造csrf csrf概述 掌握CSRF 漏洞原理 掌握CSRF 漏洞场景 掌握CSRF 漏洞验证 csrf原理 ​ 跨站请求伪造(Cross Site Request Forgery,CSRF)是一种攻击,它强制浏览器客户端用户在当前对其进行身份验证后的Web 应用程…

Sql Prompt 10下载安装图文教程

在操作过程中,请暂时关闭你的防病毒软件,以免其误报导致操作失败。 资源 SQL Prompt 10 https://www.aliyundrive.com/s/QuMWkvE1Sv6 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看&…

使用CXF调用WSDL(二)

简介 本篇文章主要解决了上篇文章中遗留的对象嵌套问题,要想全面解析无限极的对象嵌套需要使用递归去解决 上文链接: 使用CXF调用WSDL(一) 上文回顾 上文使用了单方法“ call() ”解决了List和基本类型(含String&…

Nginx反向代理与负载均衡与504错误

Nginx反向代理与负载均衡概念简介 关于代理 什么是代理 类似中介 在没有代理模式的情况下,客户端和Nginx服务端,都是客户端直接请求服务端,服务端直接响应客户端。 那么在互联网请求里面,客户端往往无法直接向服务端发起请求…

使用jmeter+ant进行接口自动化测试(数据驱动)

本次接着介绍如何利用apache-ant执行测试用例并生成HTML格式测试报告 ①下载安装 apache-ant-1.9.9,配置环境变量 如下方式检验安装成功 ②安装好ant后,把jmeter中extras目录下的ant-jmeter-1.1.1.jar 文件copy到ant安装目录下的lib文件夹中 ③配置ant…

Python中带图例的条形图的具体画法和参数调节

首先如上图所示的图是如何画出来的呢,它主要是分三个部分, 首先第一部分是将四个单独的图按照横轴的方式叠加起来,第二部分是如何调节右上角图例的位置和大小,第三部分是标注出整个横轴和竖轴的坐标并调节字体的大小。 一.将四个…

基于vue 2.0的H5页面中使用H5自带的定位,高德地图定位,搜索周边商户,覆盖物标记,定位到当前城市

基于vue的H5页面中使用高德地图定位&#xff0c;搜索周边商户&#xff0c;覆盖物标记 首先安装高德地图插件 npm i amap/amap-jsapi-loader --save地图承载容器 <template><div id"container"></div> </template>地图容器样式 <style…

利用Nextcloud搭建企业私有云盘系统

利用Nextcloud搭建企业私有云盘系统 1. 场景介绍2. 环境准备3. 安装NextCloud4. 系统功能验证 1. 场景介绍 Nextcloud是一款免费开源的私有云存储系统&#xff0c;采用PHPMySQL开发&#xff0c;提供了多个同步客户端支持多种设备访问&#xff0c;使用Nextcloud可以快速便捷地搭…

OpenCV必知必会基础3(包括色彩空间的变换、ROI、OpenCV中最重要的结构体Mat以及获取图像的属性)

文章目录 OpenCV的色彩空间——RGB与BGROpenCV的色彩空间——HSV与HSLHSV主要用于OpenCV中HSL OpenCV色彩空间转换YUV主要用于视频中题目 图像操作的基石Numpy【基础操作】np.arraynp.zerosnp.onesnp.fullnp.identitynp.eye Numpy基本操作之矩阵的检索与赋值Numpy基本操作三——…

腾讯待办是什么?关停之后如何继续提醒待办事项?

由于业务方向调整&#xff0c;腾讯待办将于2023年的12月20日全面停止运营并下架。那么腾讯待办是什么呢&#xff1f;它是一款以微信小程序呈现的待办事项和日程管理工具&#xff0c;旨在帮助用户更好地管理自己的待办事项和日程安排。用户可以在该小程序中创建待办事项、设置提…

前三季度亏损近亿元,「缺钱」的北斗智联拟变更控股股东

本月初&#xff0c;北斗星通发布《关于深圳证券交易所重组问询函回复的公告》&#xff0c;针对公司全资子公司拟出售孙公司北斗星通智联科技有限责任公司&#xff08;以下简称北斗智联&#xff09; 15%的股权事宜做出进一步解读。 按照此前计划&#xff0c;15%的股权&#xff0…

使用CycleGAN训练自己的数据集

一、下载源码 源码下载链接&#xff1a;https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix 二、调整自己的数据集格式 按照如下格式放 三、安装好所需要的python包 使用命令&#xff1a;pip install 包名称 在anaconda里面安装&#xff0c; 四、训练和测试 在开始训…

LeetCode - 160. 相交链表(C语言,配图)

思路&#xff1a; 1. 我们算出两个链表的长度lenA&#xff0c;lenB。我们在这里最后判断一下&#xff0c;两个链表的尾节点是否是一样的&#xff0c;如果是相交链表&#xff0c;那它们的尾节点一定是一样的。 2. 算出长链表和短链表的差距n&#xff08;n | lenA- lenB |&#…

html图片控制处理放大缩小移动多种案例(附源码)

文章目录 1.图片处理风格1.1 简约版本图片预览1.2 图片查看器&#xff0c;可放大缩小&#xff0c;旋转1.3 图片放大镜效果1.4 图片放大显示&#xff0c;支持滚轮调整大小1.5 图片上下滑动缩略图字幕效果 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者&#xff1a;xcLeigh …

Google codelab WebGPU入门教程源码<3> - 绘制网格(源码)

对应的教程文章: https://codelabs.developers.google.com/your-first-webgpu-app?hlzh-cn#4 对应的源码执行效果: 对应的教程源码: 此处源码和教程本身提供的部分代码可能存在一点差异。 class Color4 {r: number;g: number;b: number;a: number;constructor(pr 1.0, p…

Linux下好玩的指令(持续更新)

适用于centOS下&#xff0c;别的Linux换个指令就行&#xff0c;内容是一样的 centOS有的指令安装不了&#xff1f;试试拓展yum源&#xff0c;再安装基本就OK啦&#xff01; yum install -y epel-release 下面是作者在centOS环境下亲测可以使用的&#xff0c;如果你是root用户直…