热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用ServiceEntry扩展网格服务

服务入口网关是将内部服务暴露给外部访问,服务入口正好相反,是把

服务入口

网关是将内部服务暴露给外部访问,服务入口正好相反,是把外部服务纳入到网格内部进行管理,主要是希望能够管理到外部服务的请求,比如需要对访问外部服务的请求做一些流量控制,还有就是能够帮我们扩展我们的网格,例如我们要给多个集群共享同一个网格(mesh)
在这里插入图片描述
从图上可以看出,服务入口相当于抽象了一个外部服务,然后内部服务就像访问网格内部的服务一样去访问外部服务

任务

说明:将httpbin注册为网格内部的服务,并配置流控策略
目标:学会通过服务入口扩展网格,掌握服务入口的配置方法

配置

因为bookinfo服务里,没有带curl这个命令,因此想要模拟内部服务去请求外部服务,需要在添加另外一个服务,官方提供了sleep这样的服务
httpbin是一个非常精简的测试http请求的服务
如http://httpbin.org/headers可以看到头信息

kubectl apply -f ./samples/sleep/sleep.yaml
kubectl exec -it sleep-f8cbf5b76-8fz8g -c sleep curl http://httpbin.org

关闭出流量访问权限
outboundTrafficPolicy=REGISTER_ONLY
本来是ALLOW_ANY
istio中默认所有的网格内的服务,是允许直接访问外部服务的,所以我们先关闭到允许访问外部服务的方式,设置成只有注册过的服务才能访问外部服务

kubectl get configmap istio -n istio-system -o yaml | sed 's/mode: ALLOW_ANY/mode: REGISTER_ONLY/g' |kubectl replace -n istio-system -f -

这样的话发现在服务内部无法访问外部
然后定义一个服务入口,让sleep服务可以通过服务入口访问外部服务

apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: httpbin-ext
spec:
hosts: 外部服务的服务域名
- httpbin.org
ports: 定义具体的访问这个服务的协议及端口
- number: 80
name: http
protocol: HTTP
location: MESH_EXTERNAL 定义网格外部还是内部
resolution: DNS 服务发现的机制,通过dns发现

[root@vms30 ~] kubectl get se
NAME HOSTS LOCATION RESOLUTION AGE
httpbin-ext [httpbin.org] MESH_EXTERNAL DNS 27s

发现又可以访问了


推荐阅读
  • Envoy 流量分配策略优化
    在本研究中,我们对Envoy的流量分配策略进行了优化,旨在提高系统的稳定性和性能。实验环境包括一个前端代理服务(Envoy,IP地址为172.31.57.10)和五个后端服务。通过调整Envoy的配置,实现了更高效的流量分发和负载均衡,显著提升了整体系统的响应速度和可靠性。 ... [详细]
  • spring boot使用jetty无法启动 ... [详细]
  • 在Spring Boot项目中,通过YAML配置文件为静态变量设置值的方法与实践涉及以下几个步骤:首先,创建一个新的配置类。需要注意的是,自动生成的setter方法默认是非静态的,因此需要手动将其修改为静态方法,以确保静态变量能够正确初始化。此外,建议使用`@Value`注解或`@ConfigurationProperties`注解来注入配置属性,以提高代码的可读性和维护性。 ... [详细]
  • 往期文章Prom ... [详细]
  • Beetl是一款先进的Java模板引擎,以其丰富的功能、直观的语法、卓越的性能和易于维护的特点著称。它不仅适用于高响应需求的大型网站,也适合功能复杂的CMS管理系统,提供了一种全新的模板开发体验。 ... [详细]
  • 一、Advice执行顺序二、Advice在同一个Aspect中三、Advice在不同的Aspect中一、Advice执行顺序如果多个Advice和同一个JointPoint连接& ... [详细]
  • 本文详细介绍了JQuery Mobile框架中特有的事件和方法,帮助开发者更好地理解和应用这些特性,提升移动Web开发的效率。 ... [详细]
  • CRZ.im:一款极简的网址缩短服务及其安装指南
    本文介绍了一款名为CRZ.im的极简网址缩短服务,该服务采用PHP和SQLite开发,体积小巧,约10KB。本文还提供了详细的安装步骤,包括环境配置、域名解析及Nginx伪静态设置。 ... [详细]
  • 本文介绍了如何通过C#语言调用动态链接库(DLL)中的函数来实现IC卡的基本操作,包括初始化设备、设置密码模式、获取设备状态等,并详细展示了将TextBox中的数据写入IC卡的具体实现方法。 ... [详细]
  • 本文将从基础概念入手,详细探讨SpringMVC框架中DispatcherServlet如何通过HandlerMapping进行请求分发,以及其背后的源码实现细节。 ... [详细]
  • 如何在PHP中安装Xdebug扩展
    本文介绍了如何从PECL下载并编译安装Xdebug扩展,以及如何配置PHP和PHPStorm以启用调试功能。 ... [详细]
  • 小编给大家分享一下Vue3中如何提高开发效率,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获, ... [详细]
  • 本文探讨了在Windows系统中运行Apache服务器时频繁出现崩溃的问题,并提供了多种可能的解决方案和建议。错误日志显示多个子进程因达到最大请求限制而退出。 ... [详细]
  • Logging all MySQL queries into the Slow Log
    MySQLoptionallylogsslowqueriesintotheSlowQueryLog–orjustSlowLog,asfriendscallit.However,Thereareseveralreasonstologallqueries.Thislistisnotexhaustive:Belowyoucanfindthevariablestochange,astheyshouldbewritteninth ... [详细]
  • 本文深入探讨了ASP.NET Web API与RESTful架构的设计与实现。ASP.NET Web API 是一个强大的框架,能够简化HTTP服务的开发,使其能够广泛支持各种客户端设备。通过详细分析其核心原理和最佳实践,本文为开发者提供了构建高效、可扩展且易于维护的Web服务的指导。此外,还讨论了如何利用RESTful原则优化API设计,确保系统的灵活性和互操作性。 ... [详细]
author-avatar
重羽玉婷018
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有