Istio 流量管理 serviceEntry 出口流量管理

这篇具有很好参考价值的文章主要介绍了Istio 流量管理 serviceEntry 出口流量管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

无论是vs还是dr这些都是入口的流量。对于pod来说也会有出去的流量的。

除了对进来的流量做有效的控制之外,其实也可以控制出去的流量。istio-egress是出口网关,pod出去的时候要经过egress-gateway到达外界的某个终端。

Istio 流量管理 serviceEntry 出口流量管理,istio,云原生

hosts: - www.baidu.com  这个是pod要访问的服务器。pod里面设置的是dnsPolicy:clusterFirst,它的意思就是优先使用集群里面的dns,这个也就是kube-system命名空间下面的coredns了,location: MESH_EXTERNAL这个意思hosts是在网格之外的主机。

Istio 流量管理 serviceEntry 出口流量管理,istio,云原生

  • MESH_EXTERNAL -- 网格外部   控制去往网格外部的流量,百度就是网格之外的流量了
  • MESH_INTERNAL -- 网格内部    控制到网格内部某个主机的流量。
[root@k8s-master se]# cat se.yaml 
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: myse
  namespace: istio
spec:
  hosts:
  - www.baidu.com
  ports:
  - number: 443
    name: https
    protocol: HTTPS
  resolution: STATIC
  location: MESH_EXTERNAL
  endpoints:
  - address: 192.168.26.3 

如果resolution: STATIC  address: 192.168.26.3   这样是去解析www.baidu.com的时候解析为192.168.26.3(此处的endpoint的地址是www.baidu.com的IP)

这样就是将域名百度解析为192.168.26.3 

结合VS进行流量控制


Istio 流量管理 serviceEntry 出口流量管理,istio,云原生

Istio 流量管理 serviceEntry 出口流量管理,istio,云原生

[root@k8s-master ~]# netstat -tpnl | grep 80
          tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      91791/nginx: master 
tcp6       0      0 :::80                   :::*                    LISTEN      91791/nginx: master 


[root@k8s-master se]# cat se.yaml 
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: myse
  namespace: istio
spec:
  hosts:
  - xx.rhce.cc
  ports:
  - number: 80
    name: https
    protocol: HTTPS
  resolution: STATIC
  location: MESH_EXTERNAL
  endpoints:
  - address: 192.168.11.135 

这里明确指出的是走向xx.rhce.cc,也就是出去的时候流量,xx.rhce.cc不是集群的,它不是我们网格里面的。得通过se加入到网格内。

# curl xx.rhce.cc
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="https://www.rhce.cc//">here</a>.</p>
</body></html>

我们要想通过vs来控制出口流量的话,那么一定要把服务器端写入到serviceEntry里,如果不写的话,则vs对他不生效。

如果只是单单的在里面加一条域名解析,那么是没问题可以访问集群外部的机器的,但是要实现控制必须使用se + vs
# cat /etc/hosts
# Kubernetes-managed hosts file.
127.0.0.1	localhost
::1	localhost ip6-localhost ip6-loopback
fe00::0	ip6-localnet
fe00::0	ip6-mcastprefix
fe00::1	ip6-allnodes
fe00::2	ip6-allrouters
10.244.169.156	pod1

流量想出口到网格之外的主机,就是将网格之外的主机纳管进入网格之内再去控制。

要想控制pod往网格之外的主机,那么要为网格之外的主机建立se,然后结合vs去做控制。

如果我们没有定义se,默认情况下,所有的出去的流量都是允许的。

默认策略


是否可以修改默认的流量控制--- 拒绝所有的出流量?
Istio 流量管理 serviceEntry 出口流量管理,istio,云原生

REGISTRY_ONLY:只允许访问网格之内的,只允许访问到注册到网格之内的才可以。

exportTo


在其他命名空间下创建了pod1,在某个命名空间下面定义的se和vs在其他命名空间下也生效了。

export to也就是我定义的se会不会影响到其他的命名空间。

.点代表影响当前命名空间。

Istio 流量管理 serviceEntry 出口流量管理,istio,云原生

Istio 流量管理 serviceEntry 出口流量管理,istio,云原生文章来源地址https://www.toymoban.com/news/detail-527031.html

到了这里,关于Istio 流量管理 serviceEntry 出口流量管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自从用了 Kiali 以后才知道,配置 Istio 的 流量管理 是如此容易

    在生产环境中,直接登录服务器是非常不方便的,我们可以使用Kiali配置Istio的流量管理。 本文以Istio官方提供的Bookinfo应用示例为例,使用Kiali配置Istio的流量管理。Bookinfo应用的架构图如下: 其中,包含四个单独的微服务: productpage :调用 details 和 reviews 两个服务,用来生

    2024年02月07日
    浏览(31)
  • 使用Istio的Envoyfilter做kubernetes的出口http拦截

    以下步骤均在无法访问docker.io的集群下操作,如果集群可以连接docker.io,则不需要准备镜像包,直接在docker.io中拉取即可 部署在kubernetes中的pod,在往外部请求的时,外部服务期望能知道是哪个pod调用的,以保证数据安全,在外部服务之前,用abac配置了对pod的环境限制,比方

    2024年02月21日
    浏览(36)
  • Istio实战(九)-Envoy 流量劫持

    Envoy 是一款面向 Service Mesh 的高性能网络代理服务。它与应用程序并行运行,通过以平台无关的方式提供通用功能来抽象网络。当基础架构中的所有服务流量都通过 Envoy 网格时,通过一致的可观测性,很容易地查看问题区域,调整整体性能。 Envoy也是istio的核心组件之一,以

    2024年02月08日
    浏览(30)
  • Istio——为微服务构建一个通用的流量控制平面

    作者:禅与计算机程序设计艺术 随着云计算、容器化和微服务架构的普及,越来越多的公司和组织开始采用基于微服务架构的分布式应用开发模式。然而,在真正将这些微服务部署到生产环境后,如何实现对应用的流量管理以及安全防护就成为一个棘手的问题。微服务架构虽

    2024年02月07日
    浏览(38)
  • Istio是一个开源的基于 envoy proxy 的服务网格工具,它通过提供应用层面的流量管理和安全保障能力,帮助企业构建一个完整的服务网络体系

    作者:禅与计算机程序设计艺术 容器编排工具通常都提供微服务架构,其中包括服务注册与发现、负载均衡、流量控制和熔断等功能。随着云计算的普及,越来越多的人开始使用这些容器编排工具,包括Docker Swarm、Kubernetes、Mesos等。除了提供容器集群管理之外,许多容器编排

    2024年02月07日
    浏览(33)
  • 【云原生 | 从零开始学istio】五、istio灰度发布以及核心资源

    灰度发布也叫金丝雀发布 ,是指通过控制流量的比例,实现新老版本的逐步更替。 比如对于服务 A 有 version1、 version2 两个版本 , 当前两个版本同时部署,但是 version1 比例 90% ,version2 比例 10% ,看运行效果,如果效果好逐步调整流量占比 80~20 ,70~30 ·····10~90 ,0,

    2024年02月01日
    浏览(28)
  • 如何理解 Istio Ingress, 它与 API Gateway 有什么区别?东西流量?南北流量?

    这三者都和流量治理密切相关,那么流量治理在过去和现在有什么区别呢?都是如何做的呢? 在学习istio的时候对流量管理加深了理解。什么是东西流量?什么是南北流量? 假如让你说出k8s中的服务暴露的方式? 你可以说几种? 我面试也遇到过这个问题。 东西流量 mesh(No

    2024年02月11日
    浏览(37)
  • 云原生Istio基本介绍

    地址 :https://istio.io/ 服务网格是一个独立的基础设施层,用来处理服务之间的通信。现代的云原生应用是由各种复杂技术构建的服务体系,服务网格负责在这些组成部分之间进行可靠的请求传递。目前典型的服务网格通常提供了一组轻量级的网络代理,这些代理会在应用无感

    2024年02月04日
    浏览(29)
  • 云原生改造- istio (二)

    目录 1 VirtualService 文件 2 DestinationRule 文件 3 演示结果 前提 基于内容的灰度发布,保证在chrome下可以访问V2版本,其他浏览器可以访问v1. IE 或者 火狐 可以正常访问V1 版本 user-agent Chrome 浏览器 可以正常访问V2 版本     user-agent

    2024年02月11日
    浏览(26)
  • 云原生Istio架构和组件介绍

    下图展示了组成每个平面的不同组件: 先简单理解 Pilot:提供服务发现功能和路由规则 Mixer:策略控制,比如:服务调用速率限制 Citadel:起到安全作用,比如:服务跟服务通信的加密 Sidecar/Envoy: 代理,处理服务的流量 (1) 自动注入 :(由架构图得知前端服务跟后端服务

    2024年02月03日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包