istio api_Istio的网络API解释了

istio api

Istio 1.0版附带一个网络API,该API包含许多功能并涵盖了各种场景。 联网API在最近几个月中得到了发展,并且可能不会立即说明。 该API的概念和构建块是什么,以及如何使用各个Istio资源类型来通过我们的服务网格路由流量?

尽管文档提供了大量有用的信息,但我还是想用自己的语言来描述和解释流量路由。 我必须付出很多努力才能理解概念和动机是什么,尤其是如何应用各个组成部分。

以下视频旨在说明Istio的网络( v3alpha )API的概念是什么,以及通常如何应用构建基块。 它显示了服务网格中各个组件的可视模型,希望可以帮助您理解和使用Istio。

什么时候使用

虚拟服务 :将属于网格的服务的流量路由到特定目标或其子集,和/或以超时等行为标记HTTP(默认)路由。

目标规则 :设置路由流量的策略,例如TLS设置,异常检测或负载平衡器设置,和/或定义属于网状网络的服务子集。

服务条目 :将其他服务添加到Istio的内部服务注册表中,这是将流量路由到外部服务所必需的。 可以通过虚拟服务和目标规则来增强所添加的服务。

网关(入口) :将入口流量路由到服务网格。 网关需要绑定到虚拟服务,该服务定义将入口流量路由到的位置。

网关(出口) :定义一个出口点,所有离开网格的出口流量都可以通过该出口进行路由。 对于仅特定节点可以或应该访问外部网络的方案可能是必需的。

见解和“陷阱”

开始使用Istio的网络功能后,您可能需要考虑一些我自己的见解。 其中一些听起来很明显,但可能包含“陷阱”效果。

  • 虚拟服务以及目标规则不必与平台(Kubernetes)服务1:1匹配。
  • HTTP和HTTPS / TLS的运行方式有所不同,尤其是在路由规则和其他“增强”方面,这主要是由于流量的加密性质所致。 例如
    • HTTPS通信需要通过TLS规则(使用端口和SNI)而不是HTTP规则进行路由。
  • 为了利用所有路由功能,有必要在服务网格内部使用未加密的HTTP。
    • Istio的可选mTLS仍可确保对网格内部流量进行加密,而无需应用程序级HTTPS / TLS。
  • 默认情况下,不允许外部流量到(外部)网格外的服务。 必须输入服务。
  • 入口或出口网关可以负责多个平台(Kubernetes)服务,但需要绑定到单个虚拟服务定义。
  • 通过为外部主机名定义的虚拟服务或目标规则,可以控制或“增强”出口流量。
  • 服务条目中指定的主机流量可以重新路由到内部服务。
  • 只要外部服务条目未重定向到另一个内部服务,就将其作为单独的服务进行监视。
  • Istio不执行DNS解析,但是,代理将根据主机名路由通信。
    • Istio代理将主机名和SNI名称都考虑在内,并且可以将流量重新路由到内部或外部服务。

我希望这可以澄清Istio的网络功能。 我们很高兴收到您的反馈!

更多信息

  • 交通管理(Istio文档)
  • API参考
  • 引入Istio v1alpha3路由API(Istio博客文章)
  • 咖啡示例项目

翻译自: https://www.javacodegeeks.com/2018/08/istios-networking-api-explained.html

istio api

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

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

相关文章

MySQL命令之mysqldump的选项详解

文章目录--opt--skip-opt--add-drop-table--add-locks--skip-add-locks--allow-keywords--all-databases,-A--comments--skip-comments--compact--complete-insert,-c--compress,-C--events,-E--compatible--skip-disable-keys,-K--skip-add-drop-table--quick,-q--skip-quick-…

网关限流(令牌桶算法)

一、需求&#xff1a; 每个ip地址1秒内只能发送1次请求&#xff0c;多出来的请求返回429错误。 二、引入依赖 spring cloud gateway 默认使用redis的RateLimter限流算法来实现。所以我们要使用首先需要引入redis的依赖 <!--redis--> <dependency><groupId&g…

openapi_MicroProfile OpenAPI上的Swagger UI

openapiMicroProfile OpenApi为我们提供了一种使用OpenApi 3描述我们JAX-RS API的标准化方法。如果您以前使用过swagger-jaxrs和swagger- 批注 &#xff0c;由于OpenApi是基于Swagger构建的&#xff0c;因此您会感到非常熟悉。 2015年11月5日&#xff0c;SmartBear与3Scale&am…

MySQL的用户表(user)

文章目录字段 host 中的特殊值介绍user 字段中的特殊值介绍我们查看下这张表的字段 host 和 user&#xff0c;如下所示&#xff1a; mysql> select host,user from user; ----------------------------- | host | user | ----------------------------- |…

BCrypt管理员登录密码验证

一、简单入门测试 BCrypt不支持反运算&#xff0c;只支持密码校验 package com.william.test;import org.springframework.security.crypto.bcrypt.BCrypt;/*** author &#xff1a;lijunxuan* date &#xff1a;Created in 2019/7/11 11:34* description &#xff1a;* ver…

通用数据库管理工具_了解为什么这个直观的工具是您团队的通用团队管理工具...

通用数据库管理工具每个项目管理工具都试图做同样的工具性工作&#xff1a;保持团队联系&#xff0c;按任务执行和按时完成重大计划。 但是市场变得非常拥挤&#xff0c;并且有充分的理由-没有平台似乎对人们需要看到的东西以及应该如何显示这些信息具有正确的感觉&#xff0c;…

MySQL查询结果纵向输出标识符\G

\G 这个 G 是 group 的首字母&#xff0c;表示每行记录分组显示。 默认情况下&#xff0c;表数据的查询结果是横向输出的&#xff0c;如下所示&#xff1a; mysql> select * from student; ----------------------------------------------------------------------------…

用jackson转json_用Jackson编写大JSON文件

用jackson转json有时您需要将大量数据导出到JSON到文件中。 也许是“将所有数据导出到JSON”&#xff0c;或者是GDPR“可移植性的权利”&#xff0c;您实际上需要这样做。 与任何大型数据集一样&#xff0c;您不能只将其全部容纳在内存中并将其写入文件。 这需要一段时间&…

JWT 实现微服务鉴权

一、JWT JSON Web Token&#xff08;JWT&#xff09;是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。 一个JWT实际上就是一个字符串&#xff0c;它由三部分组成&#xff0c;头部、载荷与签名。 头部&#xff08;Header&#xff09; 头…

MySQL查看数据库系统正在运行的进程

在 MySQL 5.6 以前&#xff0c;我们通过 show processlist 命令查看系统中正在运行的所有进程&#xff1a; mysql> show processlist; ------------------------------------------------------------------------------------------------ | Id | User | Host …

oauth2.0授权码_OAUTH 2.0授权码授予

oauth2.0授权码OAuth 2.0提供了许多安全流程&#xff08;或授权类型&#xff09;&#xff0c;以允许一个应用程序访问另一个应用程序中的用户数据。 在此博客中&#xff0c;我们将介绍OAuth 2.0授权&#xff1a;授权代码授权。 首先&#xff0c;有许多定义&#xff1a; 客户…

JJWT签发与验证token

JJWT是一个提供端到端的JWT创建和验证的Java库。永远免费和开源(Apache License&#xff0c;版本2.0)&#xff0c;JJWT很容易使用和理解。它被设计成一个以建筑为中心的流畅界面&#xff0c;隐藏了它的大部分复杂性。 官方文档&#xff1a; https://github.com/jwtk/jjwt 一、…

MySQL数据库创建用户_修改用户_删除用户_设置用户

文章目录创建新用户使用 CREATE USER 语句创建用户创建新用户&#xff0c;并且使用哈希值设置密码创建一个只能在数据库所在主机访问数据库的用户创建一个只能从指定 IP 连接数据库的用户创建一个可以从任意 IP 连接数据库的用户创建一个没有密码的用户在 mysql.user 表中添加用…

ide 日志 乱码_IDE日志分析方法pt。 2

ide 日志 乱码介绍 在第一部分中&#xff0c;我解释了测井分析的理论方法&#xff0c;我认为这对维持工程师是最好的。 该工程师不需要在日志出现时立即对其进行分析&#xff0c;而是专注于对复杂问题的深入分析。 在第二部分中&#xff0c;我将展示一个复杂的模板可以涵盖许多…

MySQL数据库的用户授权_查看权限

文章目录Mysql 的权限分类权限数据的存储每种权限的修改策略和作用范围刷新权限MySQL 提供的操作权限授权语法格式参考示例授予用户拥有某个数据库的全部权限授予用户拥有所有数据库的全部权限授予用户拥有某个数据库的部分权限授予用户拥有某个数据库中的某个表的部分权限授予…

系统微服务签发token

一、JwtUtil 工具类 package com.changgou.system.utils;/*** author &#xff1a;lijunxuan* date &#xff1a;Created in 2019/7/11 17:14* description &#xff1a;* version: 1.0*/import io.jsonwebtoken.JwtBuilder; import io.jsonwebtoken.Jwts; import io.jsonweb…

MySQL创建用户报错 -- ERROR 1396 (HY000): Operation CREATE USER failed for ‘user_name‘@‘localhost‘

mysql> CREATE USER lwxlocalhost IDENTIFIED BY 123456; ERROR 1396 (HY000): Operation CREATE USER failed for lwxlocalhostmysql> drop user lwxlocalhost; # 使用drop user语句删除用户&#xff0c;可能是之前删除用户lwx的时候有问题&#xff0c;例如从user表删除…

jdk12源代码文件_JDK 11:轻松取出单文件Java源代码程序

jdk12源代码文件JDK 11 Early Access Builds包含与JEP 330相关的预览功能&#xff08;“启动单个文件源代码程序”&#xff09;。 我之前在“ Shebang即将来到Java&#xff1f; ”和“ 针对JDK 11提议的JEP 329和JEP 330 ”&#xff0c;由于JDK 11 Early Access Builds&#x…

网关过滤器验证token

一、JwtUtil 工具类 package com.changgou.system.utils;/*** author &#xff1a;lijunxuan* date &#xff1a;Created in 2019/7/11 17:14* description &#xff1a;* version: 1.0*/import io.jsonwebtoken.JwtBuilder; import io.jsonwebtoken.Jwts; import io.jsonweb…

MySQL SHELL 缓存历史命令

在正常情况下&#xff0c;我们在 MySQL SHELL 中输入的历史命令语句&#xff0c;通过上下箭头键可以向前向后查看&#xff0c;但是如果输入的语句中含有密码字段&#xff0c;那么这条命令语句不会被缓存到历史记录中。