当前位置:网站首页>SMI 与 Gateway API 的 GAMMA 倡议意味着什么?
SMI 与 Gateway API 的 GAMMA 倡议意味着什么?
2022-07-30 15:33:00 【InfoQ】
GatewayGatewayClassHTTPRoute- 规范的参与:这个倡议由 SIG Network(Gateway API所在的 Kubernetes SIG)与服务网格社区共同发起,服务网格社区有来自 Cilium Service Mesh、Consul、Istio、Kuma、Linkerd、SMI、NGINX Service Mesh 和 Open Service Mesh 的代表。SMI 与其他几个不同,它是服务网格的规范 API,并非是实现,Gateway API 也一样。
- 面向东西向流量:小组的首个工作探索使用 Gateway API 处理东西向流量已经开始。东西向流量,也就是服务网格中服务到服务的流量。
规范
服务网格的规范 SMI

Kubernetes Gateway API

HTTPRouteTCPRouteUDPRouteTLSRoute- 厂商实现了Gateway API 并定义了自己
GatewayClass类型,一系列的实现可供选择。
- 集群管理员安装 Gateway API 的实现,部署跨命名空间的共享网关实例,或者命名空间独享的网关实例。如下图,集群管理员部署了跨
store和site命名空间的网关foo。
- 开发人员创建
HTTPRoute资源将流量路由到指定的后端服务。

现有的流量规范
SMI TrafficSplit
TrafficSplitserviceClusterIPHTTPRouteGroupservicewebsitewebsite-v2spec.serviceservicekind: TrafficSplit
metadata:
name: ab-test
spec:
service: website
matches:
- kind: HTTPRouteGroup
name: ab-test
backends:
- service: website-v1
weight: 0
- service: website-v2
weight: 100
---
kind: HTTPRouteGroup
metadata:
name: ab-test
matches:
- name: firefox-users
headers:
user-agent: ".*Firefox.*"
Istio VirtualService
VirtualServicehostsVirtualServicespec:
hosts:
- reviews.prod.svc.cluster.local # could also be just "reviews"
http:
- match:
- uri:
prefix: "/frontpage"
route:
- destination:
host: frontpage.prod.svc.cluster.local
Kuma TrafficRoute
serviceClusterIPspec:
sources:
- match:
kuma.io/service: backend_default_svc_80
destinations:
- match:
kuma.io/service: redis_default_svc_6379
conf:
http:
- match: …
Cilium CiliumEnvoyConfig
serviceClusterIPspec:
services:
- name: httpbin
namespace: default
listener: envoy-lb-listener
backendServices:
- name: echo
namespace: default
resources: …
Consul ServiceRouter
ServiceRouterwebserviceClusterIPapiVersion: consul.hashicorp.com/v1alpha1
kind: ServiceRouter
metadata:
name: web
spec:
routes:
- match:
http:
pathPrefix: /admin
destination:
service: admin
Linkerd ServiceProfile
ServiceProfileHostroutes/admin/storeapiVersion: linkerd.io/v1alpha2
kind: ServiceProfile
metadata:
name: webapp.my-service-namespace.svc.cluster.local
spec:
routes: …
未来的设计
apiVersion: gateway.networking.k8s.io/v1beta1
kind: HTTPRoute
metadata:
name: my-route
namespace: gateway-api-example-ns2
spec:
parentRefs:
- kind: Gateway
name: foo-gateway
namespace: gateway-api-example-ns1
hostnames:
- foo.example.com
rules:
- backendRefs:
- name: foo-svc
port: 8080
HTTPRoute- 与<u>网关实现</u>(
foo-gateway.gateway-api-example-ns1)的映射(通过parentRefs实现),也就是说将流量匹配规则写入到哪个网关实例。
- 与<u>服务</u>(
foo-svc:8080)的映射(通过hostnames实现)。
HTTPRoutespec.hostnamesspec.rulesmethodpath东西向流量
- 与<u>网格实现</u>的映射,将流量匹配规则写入到某种网格的 sidecar 中。
- 与<u>服务</u>的映射,如何将进入到网格 sidecar 流量与目标服务(网格内的服务,或者网格外的服务)进行匹配。
总结

边栏推荐
- tiup completion
- Changing SELECT...FROM to FROM...SELECT doesn't 'fix' SQL
- tiup list
- 华为ADS获取转化跟踪参数报错:getInstallReferrer IOException: getInstallReferrer not found installreferrer
- Sleuth+Zipkin (visualization) service link tracking
- TiUP FAQ
- nodejs环境变量设置
- MySql 和 PostgreSQL 数据库 根据一张表update另一张表数据
- TensorFlow custom training function
- How to do a good job in technology selection
猜你喜欢

php如何截取字符串的前几位

Promise Notes (1)

配置Path环境变量

Placement Rules usage documentation

xxl-job源码解析(技术分享)

Database - SQL

FME's scheme and operation process for reading and writing cass data

数据库-SQL

AL遮天传 DL-深度学习模型的训练技巧

【HMS core】【Media】【Video Editing Service】 The online material cannot be displayed, it is always in the loading state or the network is abnormal
随机推荐
应用接入华为分析在应用调试模式下为何没有数据上报?
ISELED---the new choice of ambient lighting scheme
数据库 - 创建数据库、表、函数等
【重磅来袭】教你如何在RGBD三维重建中获取高质量模型纹理
Introduction to golang image processing library image
【为宏正名】99%的人从第一天学习C语言就自废的武功
Golang分布式应用之Redis怎么使用
TiDB tool download
MySql 和 PostgreSQL 数据库 根据一张表update另一张表数据
How to intercept the first few digits of a string in php
Packages - Notes
Pytorch 训练技巧
tiup install
JHM:芳环羟化双加氧酶数据库DARHD建立及相关引物评价
Placement Rules usage documentation
【AGC】开放式测试示例
PMP每日一练 | 考试不迷路-7.30(包含敏捷+多选)
Flask之路由(app.route)详解
tiup clean
Nature Microbiology综述:聚焦藻际--浮游植物和细菌互作的生态界面