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.mzph.cn/news/143120.shtml

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

相关文章

别试错了,是该关注一下软件内在质量了

太多这种例子了,老板们早上出的新想法,恨不得第二天就能上线。。每个互联网公司都试图突破固定领地,不断地尝试新的业务,一旦发现不行,就立刻砍掉,名曰“试错”。 研发部门,为了应对压力&#…

[每周一更]-(第71期):DevOps 是什么?

Wiki的解释: DevOps(Development和Operations的混成词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。 通过自动化“软件交付”和“架构变更”的…

【python】单词接龙

题目: 这是一个关于“单词接龙”的算法题目。在这个游戏中,我们需要从给定的一组单词中,以特定的开头字母构造出一条最长的“龙”。每个单词在这条“龙”中最多出现两次。当两个单词相连时,它们的重合部分被合并成一个。例如&…

spring boot中使用Bean Validation做优雅的参数校验

一、Bean Validation简介 Bean Validation是Java定义的一套基于注解的数据校验规范,目前已经从JSR 303的1.0版本升级到JSR 349的1.1版本,再到JSR 380的2.0版本(2.0完成于2017.08),目前最新稳定版2.0.2(201…

LMI相机配置步骤,使用Gocator2550相机

在此之前可以先浏览我编写的相机SDK通用类和LMISDK,进行配套观看 https://blog.csdn.net/m0_51559565/article/details/134404394 //LMI相机SDK https://blog.csdn.net/m0_51559565/article/details/134403745 //相机通用类1.启动LMI加速器 LMI加速器用于将相机…

什么是智能井盖?万宾科技的智能井盖传感器的效果

近年来为打造智慧城市政府一直在不懈努力。加速城市基础建设是一项重要的举措,它有助于推动城市综合治理城市生命线的建设工程。在改善市民生活质量的过程中,市政部门正积极进行井盖的改进和升级工作,特别是那些看似微不足道的井盖却蕴含着重…

Java基于itextPDF实现pdf动态导出

Java基于itextPDF实现pdf动态导出 1、制作PDF导出模板2 、集成itextpdf3 、编写实体4 、编写主要代码5、编写controller并测试补充:踩坑记录 现在的业务越来越复杂了,有些业务场景已经不能满足与EXCEL导出和WORD导出了,例如准考证打印&#x…

深度学习 植物识别算法系统 计算机竞赛

文章目录 0 前言2 相关技术2.1 VGG-Net模型2.2 VGG-Net在植物识别的优势(1) 卷积核,池化核大小固定(2) 特征提取更全面(3) 网络训练误差收敛速度较快 3 VGG-Net的搭建3.1 Tornado简介(1) 优势(2) 关键代码 4 Inception V3 神经网络4.1 网络结构 5 开始训练5.1 数据集…

arf_1解题

arf_1解题 镜像环境 version: 3.2services:web:image: registry.cn-hangzhou.aliyuncs.com/n1book/web-file-read-1:latestports:- 80:80新建yml文件将代码保存在当前位置 使用docker-compost up -d 拉取镜像 解题 访问该镜像映射端口为1520 可以看到页面只有一个holle但…

【Python】一文带你掌握数据容器之集合,字典

目录: 一、集合 思考:我们目前接触到了列表、元组、字符串三个数据容器了。基本满足大多数的使用场景为何又需要学习新的集合类型呢? 通过特性来分析: (1)列表可修改、支持重复元素且有序 (2)元组、字符…

Home Assistant使用ios主题更换背景

Home Assistant使用ios主题、更换背景 lovelace-ios-dark-mode-theme 默认前置情况,1、已安转HACS插件2、搜索安装 IOS Dark Mode Theme1)第一、二步应该很容易实现,configuration.yaml文件很容易被找到2)而本人在进行第三步操作时…

php+vue3实现点选验证码

buildadmin 中的点选验证码实现 验证码类 <?phpnamespace ba;use Throwable; use think\facade\Db; use think\facade\Lang; use think\facade\Config;/*** 点选文字验证码类*/ class ClickCaptcha {/*** 验证码过期时间(s)* var int*/private int $expire 600;/*** 可以…

我记不住的那些命令(不断更新中)

fzf 一种进行模糊查找的命令行工具 主页&#xff1a;https://github.com/junegunn/fzf 我的主机是 Kali&#xff0c;通过apt进行安装fzf&#xff0c;并进行配置。 # apt install fzf # apt show fzf 通过参考/usr/share/doc/fzf/README.Debian来进行快速配置快捷键和自动补…

保护您的Google账号安全:检查和加固措施

简介&#xff1a;随着我们在日常生活中越来越依赖于Google账号&#xff0c;我们的个人信息和敏感数据也变得越来越容易受到威胁。为了确保您的Google账号的安全性&#xff0c;本文将介绍一些简单但有效的方法&#xff0c;帮助您检查和加固您的Google账号。 --- 在数字时代&am…

squid代理服务器

squide是正向代理&#xff0c;缓存加速。基于aci访问控制协议。可以过滤控制。可以实现访问控制 squid代理的工作机制 nginx是转发 1、 squid是代替客户端向网站请求数据&#xff0c;不需要访问代理的ip地址。直接请求目的网站即可。由代理服务器处理请求和响应。squid也可以…

[Mac软件]Adobe Media Encoder 2024 V24.0.2免激活版

软件说明 使用Media Encoder&#xff0c;您将能够处理和管理多媒体。插入、转码、创建代理版本&#xff0c;并几乎以任何可用的格式输出。在应用程序中以单一方式使用多媒体&#xff0c;包括Premiere Pro、After Effects和Audition。 紧密整合 与Adobe Premiere Pro、After …

WebRTC简介及使用

文章目录 前言一、WebRTC 简介1、webrtc 是什么2、webrtc 可以做什么3、数据传输需要些什么4、SDP 协议5、STUN6、TURN7、ICE 二、WebRTC 整体框架三、WebRTC 功能模块1、视频相关①、视频采集---video_capture②、视频编解码---video_coding③、视频加密---video_engine_encry…

保护数字前沿:下一代防火墙如何塑造网络安全的未来

下一代防火墙通过提供先进的威胁检测、精细控制和云安全功能&#xff0c;正在重塑网络安全的未来。随着数字环境的不断发展&#xff0c;组织必须采用这些创新解决方案来保护其数字资产并维护安全的数字前沿。 在当今互联的世界中&#xff0c;网络威胁变得越来越复杂&#xff0c…

阿里云ACK(Serverless)安装APISIX网关及APISIX Ingress Controller

在k8s上安装apisix全家&#xff0c;通过helm安装很简单&#xff0c;但是会遇到一些问题。 安装 首先登录阿里云控制台&#xff0c;在ACK集群详情页&#xff0c;进入CloudShell&#xff0c;执行下面helm命令安装apisix、apisix-ectd、apisix-dashboard和apisix-ingress-contro…