为什么K8s需要服务网格Istio?

什么是Kubernetes服务网格

Kubernetes服务网格是一种工具,用于在平台级别而非应用级别为应用程序注入可观测性、可靠性和安全性功能。Kubernetes和微服务的兴起推动了人们对这项技术的兴趣,许多组织都采用了Kubernetes服务网格解决方案。

微服务架构高度依赖于网络,而服务网格可以管理应用程序服务之间的流量。虽然也有其他管理网络流量的方法,但这些方法需要手动执行易错的任务,会给DevOps团队带来了更多的操作负担,而服务网格则避免了这种劣势。

Kubernetes服务网格通常会被实现为一组网络代理,这些代理作为边车(sidecar)容器与应用程序容器部署在同一pod中。边车代理作为服务网格功能的入口点,管理容器化微服务之间的通信。Kubernetes服务网格包括控制平面和数据平面,其中数据平面就是由代理组成的。

服务网格架构和Kubernetes随着云原生应用的兴起而出现,一个应用程序可能由数百个容器化服务组成,而每个服务可能有数千个实例。这些实例会迅速变化,需要动态调度,这正是Kubernetes所擅长的。

什么是Istio

Istio是一种服务网格技术,管理基于容器或虚拟机工作负载之间的服务交互,它允许开发人员无论使用何种供应商或平台,都能安全地连接、运行、控制和监控分布式微服务架构。

Istio是开源且独立的,因此它可以在任何平台上使用,但是当与Kubernetes结合时,会发生最奇妙的化学反应。将两者结合使用,可以在网络和应用层面确保服务间和Pod间的通信安全。

与Istio集成扩展了容器编排软件的功能,Kubernetes可以处理微服务等多容器工作负载,但不具备故障处理和流量管理等功能,而Istio弥补了这一短板,可以创建了更高效、更可靠的系统。

在Kubernetes中使用Istio的好处

Istio使组织能够大规模地交付去中心化应用,它有助于简化网络操作,如服务间流量管理、加密、授权、故障排除和审计。

除了纯Kubernetes提供的功能外,Istio还提供了以下能力:

  • 云原生应用安全,可以专注于应用级别的安全,利用强大的基于身份的授权、身份验证和加密。
  • 高效的流量管理,通过使用丰富的路由规则、故障转移、重试和错误注入,实现对流量和网络行为的精细控制。在生产后测试中,Chaos Monkey集成能够让SRE注入故障和延迟,以提高系统的韧性。
  • 服务网格监控,Istio提供了服务级别的可观测性,以便运维人员能够跟踪、监控和排查问题。没有低细粒度的细节,瓶颈问题可能需要很长时间才能定位解决。服务网格使得禁用故障服务或副本以及维护API响应变得更加容易。
  • 轻松部署,在Kubernetes中部署Istio变得非常容易。
  • 简化的负载均衡,高级功能可以自动执行负载均衡,提供基于客户端的路由,并支持金丝雀部署。
  • 策略执行,Istio通过其配置API和策略层来支持访问控制、配额和速率限制等策略的执行。

Istio 的工作原理

以下是 Istio 核心功能的概述。

  • 流量管理

Istio 的流量管理 API 可以在细粒度级别管理服务网格的流量。你可以使用这个 API 添加流量配置,并使用 Kubernetes 自定义资源(CRDs)定义 API 资源。用于控制流量路由的主要 API 资源包括目标规则和虚拟服务。

目标规则有助于控制到特定目标的流量,例如,根据版本对服务实例进行分类。虚拟服务允许你配置 Istio 服务网格中服务的请求路由,它们由一个或多个按顺序评估的路由规则组成。在评估虚拟服务的路由规则后,即可以应用目标规则。

  • 安全性

Istio 的安全性要求为每个服务分配一个强大的身份。Envoy 代理与 Istio 代理一起运行,使用 istiod 自动轮换证书和密钥。

Istio 提供了两种身份验证选项:请求身份验证和对等身份验证。请求身份验证允许最终用户进行身份验证,Istio 通过 JSON Web Tokens (JWTs) 和自定义或基于 OIDC 的身份验证程序进行验证。对等身份验证允许服务之间进行身份验证,Istio 提供了一个完整的双向 TLS 解决方案。

Istio 允许你通过应用授权策略来控制对服务的访问。授权策略通过 Envoy 代理对入站流量执行访问控制。它们允许你在不同级别上强制执行访问控制,例如在整个网格级别、命名空间级别或服务级别。

  • 可观测性

Istio 为所有服务网格通信提供细粒度的遥测数据,包括指标、访问日志和链路跟踪。Istio 可以生成详细的代理级别、面向服务的和控制平面的指标。

Istio 还通过 Envoy 代理创建分布式链路跟踪。它支持多种跟踪机制,如 Zipkin、Lightstep、Datadog 和 Jaeger。你可以控制跟踪生成的采样率。此外,Istio 还以可配置格式提供服务流量访问日志。

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

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

相关文章

kali基础渗透学习,永恒之蓝,木马实战

简介 kali的学习本质是在linux上对一些攻击软件的使用,只是学习的初期 先在终端切换到root用户,以便于有些工具对权限的要求 下载链接 镜像源kali 攻击流程 公网信息搜集 寻找漏洞,突破口,以进入内网 进入内网&#xff0c…

(学习日记)2024.04.10:UCOSIII第三十八节:事件实验

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

Golang——方法

一. 方法定义 Golang方法总是绑定对象的实例,并隐式将实例作为第一实参。 只能为当前包内命名类型定义方法参数receiver可以任意命名。如方法中未曾使用,可省略参数名参数receiver类型可以是T或*T。基类型T不能是接口或指针类型(即多级指针)不支持方法重…

EFCore通用数据操作类

public class ServiceBase : IServiceBase {protected DbContext Context { get; private set; } // 这个DbContext指向的是当前的Contextpublic ServiceBase(IEFContext eFContext){Context eFContext.CreateDBContext();}public void Commit(){this.Context.SaveChanges(); …

2024.4.5-day10-CSS 布局模型(层模型)

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 作业 2024.4.5-学习笔记1 CSS定位1.1 相对定位 relative1.2 绝对定位 absolut…

多乐空气处理设备有限公司现已加入2024第13届生物发酵展

参展企业介绍 为满足日益发展的中国大陆市场对环境的要求,更接近最终用户,多乐集团于2001年在上海松江设立了第一家生产基地。经过十数年来的高速发展,多乐以其精湛的加工工艺、一流的制造技术方面的优势,在对温度湿度有严格要求…

赛氪网|2024中国翻译协会年会“AI科技时代竞赛与就业”分论坛

在2024年中国翻译协会年会期间,赛氪网与中西部翻译协会共同体多边合作平台共同承办,于3月30日下午在长沙成功举办了“AI科技时代竞赛与就业分论坛”。该论坛汇聚了众多翻译界、科技界和教育界的专家学者,共同探讨科技、实践、就业与竞赛人才培…

秋招算法刷题6

20240408 1.两数之和 &#xff08;时间复杂度是O&#xff08;n的平方&#xff09;&#xff09; public int[] twoSum(int[] nums, int target){int nnums.length; for(int i0;i<n;i){ for(int j1;j<n;j){ if(nums[i][j]target){ …

springboot3使用自定义注解+AOP+redis优雅实现防重复提交

⛰️个人主页: 蒾酒 &#x1f525;系列专栏&#xff1a;《spring boot实战》 &#x1f30a;山高路远&#xff0c;行路漫漫&#xff0c;终有归途 目录 写在前面 实现思路 实现步骤 1.定义防重复提交注解 2.编写一个切面去发现该注解然后执行防重复提交逻辑 3.测试 …

消息队列:揭开异步通信的神秘面纱,揭示其无可替代的价值与应用场景

在现代分布式系统架构中&#xff0c;消息队列&#xff08;Message Queue, MQ&#xff09;作为一种核心的中间件技术&#xff0c;其价值与重要性日益凸显。本文将深入剖析消息队列的使用好处&#xff0c;探讨其适用场景&#xff0c;并揭示为何在众多系统设计中&#xff0c;消息队…

RAGFlow:基于OCR和文档解析的下一代 RAG 引擎

一、引言 在人工智能的浪潮中&#xff0c;检索增强生成&#xff08;Retrieval-Augmented Generation&#xff0c;简称RAG&#xff09;技术以其独特的优势成为了研究和应用的热点。RAG技术通过结合大型语言模型&#xff08;LLMs&#xff09;的强大生成能力和高效的信息检索系统…

书生·浦语大模型实战营 | 第2次学习笔记

前言 书生浦语大模型应用实战营 第二期正在开营&#xff0c;欢迎大家来学习。&#xff08;参与链接&#xff1a;课程升级&#xff0c;算力免费&#xff0c;书生浦语实战营第二期学员招募&#xff5c;活动预告https://mp.weixin.qq.com/s/YYSr3re6IduLJCAh-jgZqg&#xff09; …

GFS部署实验

目录 1、部署环境 ​编辑 2、更改节点名称 3、准备环境 4、磁盘分区&#xff0c;并挂载 5. 做主机映射--/etc/hosts/ 6. 复制脚本文件 7. 执行脚本完成分区 8. 安装客户端软件 1. 创建gfs 2. 安装解压源包 3. 安装 gfs 4. 开启服务 9、 添加节点到存储信任池中 1…

SpringBoot项目如何国际化操作,让你可以随意切换语言

1.前言 最近接触的项目需要中文/英文或者其他国家语言的切换&#xff0c;在后台的时候有一个选择&#xff0c;你可以选择中文还是英文&#xff0c;或者其他语言&#xff0c;选择完毕界面语言就都变了&#xff0c;咱不知道前端怎么操作的&#xff0c;但是后台在处理提示语的时候…

SVN(Subversion)代码版本管理

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言SVN(Subversion)和Git的比较SVN进行版本控制的基本步骤前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先…

MySQL-8. mysql索引

说起提高数据库性能&#xff0c;索引是最物美价廉的东西了。不用加内存&#xff0c;不用改程序&#xff0c;不用调sql&#xff0c;查询速度就可能提高百倍干倍。 索引本身会占用空间&#xff0c;以空间换时间。索引的代价&#xff1a;磁盘占用&#xff0c;影响DML语句效率&…

软件SPI读写W25Q64

文章目录 前言接线引脚定义图 软件SPI读写W25Q64代码规划代码实现ThisSPI.cThisW25Q64.cmain.c 前言 SPI介绍&#xff1a;https://blog.csdn.net/qq_53922901/article/details/137142038 W25Q64介绍&#xff1a; https://blog.csdn.net/qq_53922901/article/details/137197048…

C++性能测试工具

使用示例main.cpp // g-13 -O3 -stdc17 main.cpp profile.cpp #include <iostream> #include <chrono> #include <stdint.h> #include <mutex> // std::mutex#include "profile.h" #include "profile_rdtsc.h"std::mut…

Java基于SpringBoot+Vue 的医院预约挂号系统

博主介绍&#xff1a;✌程序员徐师兄、10年大厂程序员经历。全网粉丝12W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447…

【问题记录】使用Audition播放时低8位数据会被修改

一&#xff0c;问题现象记录 使用Audition连接UAC播放采样点数据比较大的时候&#xff0c;低8位的数据会被修改。如果对低8位数据敏感的情况&#xff0c;需要使用其他播放器进行播放。 二&#xff0c;问题复现 1&#xff0c;使用C代码生成一个PCM文件&#xff1a; #include…