时间:2023-02-08 01:24:01 | 来源:建站知识
时间:2023-02-08 01:24:01 来源:建站知识
Rainbond 作为一款云原生应用管理平台,天生带有引导南北向网络流量的分布式网关 rbd-gateway。区别于一般的 Ingress 配置中,用户需要自行定义域名的使用体验,Rainbond 的网关策略可以一键自动生成域名访问策略,用户通过这个域名可以立刻访问到部署在 Rainbond 上的业务系统。这个使用体验在开发测试场景下非常友好,这篇文章详解了这一机制到底是如何实现的。
http://<servicePort>.<service_alias>.<tenant_name>.17a4cc.grapps.cn/- servicePort: 访问策略对应的目标端口名称- service_alias: 当前服务组件的别名- tenant_name: 当前团队的别名- .17a4cc.grapps.cn: 当前集群的泛解析域名
实际上,这一条路由规则,是由 Kubernetes 中对应的 ingress 和 service 所定义的。整个访问链路可以归纳为下图:apiVersion: v1kind: Servicemetadata: labels: creator: Rainbond event_id: "" name: gr49d848ServiceOUT port_protocol: http protocol: http rainbond.com/tolerate-unready-endpoints: "true" service_alias: gr49d848 service_port: "5000" service_type: outer tenant_name: 2c9v614j name: service-8965-5000out namespace: 3be96e95700a480c9b37c6ef5daf3566spec: clusterIP: 172.21.7.172 ports: - name: tcp-5000 port: 5000 protocol: TCP targetPort: 5000 selector: name: gr49d848 sessionAffinity: None type: ClusterIPstatus: loadBalancer: {} ---apiVersion: extensions/v1beta1kind: Ingressmetadata: annotations: nginx.ingress.kubernetes.io/weight: "100" generation: 1 labels: creator: Rainbond service_alias: gr49d848 tenant_name: 2c9v614j name: 3cf8d6bd89250eda87ac127c49694a05 namespace: 3be96e95700a480c9b37c6ef5daf3566spec: rules: - host: 5000.gr49d848.2c9v614j.17a4cc.grapps.cn http: paths: - backend: serviceName: service-8965-5000out servicePort: 5000 path: /status: loadBalancer: {}
/etc/hosts
文件。*.mydomain.com
这一规则的任意域名,都可以解析到同一个 IP 地址上去。在当下这一使用场景中,我们只需要将泛解析域名 *.17a4cc.grapps.cn
解析到 rbd-gateway 所在的服务器 IP 地址,就可以随意为 Ingress rule
配置符合规则的域名了。Ingress rule
和泛解析域名结合在了一起,自动为每个服务端口生成全局唯一的域名。并在集群安装时,自动向公网 DNS 服务器注册了解析记录,集群安装完毕之后,所生成的所有域名,都是可以被公网解析的,只要 PC 客户端可以使用公网 DNS 服务,就可以解析域名,并访问到指定的服务端口。17a4cc
)来区分不同的集群。这里涉及到关于泛解析域名的一个特点,子级域名的解析记录,优先级高于父级域名的解析记录。===========================================// 对两级泛解析域名注册解析记录*.grapps.cn =解析记录注册=> 1.1.1.1*.17a4cc.grapps.cn =解析记录注册=> 2.2.2.2======================================================================================// 客户端解析结果abc.grapps.cn =解析 IP 地址=> 1.1.1.1abc.def.grapps.cn =解析 IP 地址=> 1.1.1.1abc.17a4cc.grapps.cn =解析 IP 地址=> 2.2.2.2 // 优先使用 *.17a4cc.grapps.cn 的解析记录
wylhzmyj
31096419
关键词:机制