Istio - crds - Service Entry

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 服务条目(Service Entry)是 Istio 重要的资源对象之一,作用是将外部的资源注册到 Istio 内部的网格服务中来,以提供网格内对外部资源的更加精细化的控制。

> 服务条目(Service Entry)是 Istio 重要的资源对象之一,作用是将外部的资源注册到 Istio 内部的网格服务中来,以提供网格内对外部资源的更加精细化的控制。



#### 什么情况下会用到 Service Entry

在服务调用过程中会使用到外部的服务,例如微信、支付宝的付款服务,这个服务和本身集群内的服务无任何关系,通过服务条目将该服务注册到 Istio 网格,在集群内部就好像访问自身的服务一样,结合虚拟服务、目标规则进而通过一些高级的治理能力,例如限流、重试等等对服务治理能力支持。


#### 通过例子来理解

image.jpeg

apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:  name: baidu-se
spec:  hosts:  - www.baidu.com
  location: MESH_EXTERNAL
  ports:  - name: https
    number: 443    protocol: HTTPS
  resolution: DNS

将外部服务资源 www.baidu.com 注册到 Istio 内部网格,通过 DNS 去解析该服务的域名。


通过客户端容器执行 ``wget -q -O - http://www.baidu.com`` 去测试结果。


#### 为外部服务添加服务重试能力

首先使用 Service Entry 将外部服务注册到 Istio 集群内部的网格中来

添加 VirtualService 进行重试规则的定义,以及DestinationRule 声明流量的路由负载规则

模拟在返回5xx的状态码时,服务可以重试以提高可用性

image.jpeg

apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:  name: baidu-se
spec:  hosts:  - www.baidu.com
  location: MESH_EXTERNAL
  ports:  - name: https
    number: 443    protocol: HTTPS
  resolution: DNS
---apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:  name: baidu-vs
spec:  hosts:  - www.baidu.com
  http:  - route:    timeout: 200s
    retries:      attempts: 15      perTryTimeout: 5s
      retryOn: 5xx
    - destination:        host: www.baidu.com
        port:          number: 443        subset: tls-origination
---apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:  name: baidu-dr
spec:  host: www.baidu.com
  subsets:  - name: tls-origination
    trafficPolicy:      loadBalancer:        simple: ROUND_ROBIN
      portLevelSettings:      - port:          number: 443        tls:          mode: SIMPLE

``kubectl logs [serviceEntryPod] -c istio-proxy``

通过Sidecar日志可以发现,当服务调用失败时,会自动的尝试3次。



#### 手动指定错误的 DNS 解析值

apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:  name: baidu-se
spec:  hosts:  - www.baidu.com
  location: MESH_EXTERNAL
  ports:  - name: http
    number: 80    protocol: HTTP
  resolution: STATIC
  endpoints:  - address: 1.2.3.4

如果在静态指定了错误的解析值后,服务调用会失败,除非一些特定的场景需要,建议还是通过DNS进行服务的域名解析。


目录
相关文章
|
存储 Kubernetes 负载均衡
【Kubernetes的Service Mesh发展历程及Istio架构、存储供应使用NFS flexvolume CSI接口】
【Kubernetes的Service Mesh发展历程及Istio架构、存储供应使用NFS flexvolume CSI接口】
218 0
|
Prometheus 负载均衡 Kubernetes
Service Mesh: Istio vs Linkerd
根据CNCF的最新年度调查,很明显,很多人对在他们的项目中使用服务网格表现出了浓厚的兴趣,并且许多人已经在他们的生产中使用它们。近69%的人正在评估Istio,64%的人正在研究Linkerd。Linkerd是市场上第一个服务网格,但是Istio使服务网格更受欢迎。这两个项目都是最前沿的,而且竞争非常激烈,因此选择一个项目是一个艰难的选择。在此博客文章中,我们将了解有关Istio和Linkerd体系结构,其运动部件的更多信息,并比较其产品以帮助您做出明智的决定。
153 0
Service Mesh 的实现,Google 的 Istio
Service Mesh 的实现,Google 的 Istio
93 0
|
负载均衡 Kubernetes 网络协议
Service Mesh对比:Istio与Linkerd
Service Mesh对比:Istio与Linkerd
1083 0
Service Mesh对比:Istio与Linkerd
|
运维 Kubernetes 网络协议
Rainbond 5.5 发布,支持Istio和扩展第三方Service Mesh框架
Rainbond 5.5 版本主要优化扩展性。服务治理模式可以扩展第三方 ServiceMesh 架构,兼容kubernetes 管理命令和第三方管理平台。
Rainbond 5.5 发布,支持Istio和扩展第三方Service Mesh框架
|
Prometheus Kubernetes 监控
Istio在Rainbond Service Mesh体系下的落地实践
在Rainbond中,用户可以对不同的应用设置不同的治理模式,即用户可以通过切换应用的治理模式,来按需治理应用。这样带来的好处便是用户可以不被某一个ServiceMesh框架所绑定,且可以快速试错,能快速找到最适合当前业务的ServiceMesh框架。
Istio在Rainbond Service Mesh体系下的落地实践
Istio - crds - Ingress Gateway
入口网关(Ingress Gateway)是 Istio 重要的资源对象之一,是用于管理网格边缘入站的流量,通过入口网关就可以很轻松的将网格内部的服务暴露到外部提供访问。
219 0
Istio - crds - Ingress Gateway
|
17天前
|
监控 安全 Cloud Native
云原生安全:Istio在微服务架构中的安全策略与实践
【10月更文挑战第26天】随着云计算的发展,云原生架构成为企业数字化转型的关键。微服务作为其核心组件,虽具备灵活性和可扩展性,但也带来安全挑战。Istio作为开源服务网格,通过双向TLS加密、细粒度访问控制和强大的审计监控功能,有效保障微服务间的通信安全,成为云原生安全的重要工具。
38 2
|
1月前
|
Kubernetes 安全 微服务
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
53 8
|
1月前
|
Kubernetes 负载均衡 安全
Istio在微服务中释放服务网格的力量
Istio在微服务中释放服务网格的力量
50 4