作者 | 元毅 阿里云智能事业群高级开发工程师

当前 Knative 中默认支持是基于域名的转发,可以通过域名模板配置后缀,但目前对于用户来说并不能指定全域名设置。另外一个问题就是基于 Path 和 Header 转发的能力,很多情况下我们使用相同的域名,不同服务通过访问路径进行区分。

针对上述这两个问题,我们在阿里云 Knative 中提供了这样的能力,用户可以通过控制台配置自定义域名,并基于 Path 和 Header 进行路由转发设置。如图所示:

自定义域名

登录阿里云容器服务控制台,进入【Knative】-【组件管理】,点击 Serving 组件【详情】。

进入详情之后,选择域名配置,添加自定义域名:【test.serverless.kuberun.com】。点击 【确定】进行保存。

配置路由转发

进入【Knative】-【服务管理】控制台,选择对应的服务。这里我们对 Login-Service 服务 以及 Search-Service 服务分别设置不同的 Path 进行访问。

Login-Service 服务路由转发配置

选择 Login-Service 服务, 选择【路由转发】页签,点击【配置】, 选择【test.serverless.kuberun.com】域名,配置路径:/login。点击【确定】进行保存。

接下来继续配置 Search-Service 服务路由规则。

Search-Service 服务路由转发配置

选择  Search-Service 服务, 选择【路由转发】页签,点击【配置】, 选择【test.serverless.kuberun.com】域名,配置路径:/search。点击【确定】进行保存。

服务访问

以上路由转发配置完成之后,我们开始测试一下服务访问:

在浏览器中输入:http://test.serverless.kuberun.com/login,可以看到输出:Hello Login Service!

在浏览器中输入:http://test.serverless.kuberun.com/search,可以看到输出:Hello Search Service!

基于 Path + Header 进行路由转发

选择  Login-Service 服务, 选择【路由转发】页签,点击 配置,这里我们加上 Header 配置:foo=bar。点击【确定】进行保存。

访问 http://test.serverless.kuberun.com/login,发现服务 404 不可访问。

说明基于 Header 是生效的,下面我们在访问请求中通过 ModHeader 插件配置上Header:foo=bar.

配置完成之后,我们再一次访问服务:http://test.serverless.kuberun.com/login

服务访问 OK。这样我们就完成了基于 Path + Header 路由转发配置。

小结

通过阿里云 Knative 控制台让你更轻松、快捷的实现自定义域名及路由规则,以打造生产可用的服务访问。欢迎对 Knative 感兴趣的一起交流。

欢迎加入 Knative 交流群

“ 阿里巴巴云原生微信公众号(ID:Alicloudnative)关注微服务、Serverless、容器、Service Mesh等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的技术公众号。”

Knative 实战:如何在 Knative 中配置自定义域名及路由规则的更多相关文章

  1. 如何在sharepoint2010中配置Google Anlytics 分析服务

      简介 Google Analytics(分析)不仅可以帮助您衡量销售与转化情况,而且能为您提供新鲜的深入信息,帮助您了解访问者如何使用您的网站,他们如何到达您的网站,以及您可以如何吸引他们不断回访 ...

  2. 详解如何在Laravel中增加自定义全局函数

    http://www.php.cn/php-weizijiaocheng-383928.html 如何在Laravel中增加自定义全局函数?在我们的应用里经常会有一些全局都可能会用的函数,我们应该怎么 ...

  3. 如何在Eclipse中配置Tomcat(免安装版)

    如何在Eclipse中配置Tomcat(免安装版) 2013-10-09 23:19wgelgrsh | 分类:JAVA相关 | 浏览642次 分享到:   2013-10-10 17:10提问者采纳 ...

  4. 如何在appconfig中配置服务的ip

    开发了一个WindowsService消息服务器,刚开始一直都是在代码中把IP地址写死,所以每次只要是更换了新的IP地址后,都需要重新编译项目.所以考虑把ip配置到config文件中, 这样做的好处是 ...

  5. 如何在IAR中配置CRC参数(转)

    源:如何在IAR中配置CRC参数 前言 STM32全系列产品都具有CRC外设,对CRC的计算提供硬件支持,为应用程序节省了代码空间.CRC校验值可以用于数据传输中的数据正确性的验证,也可用于数据存储时 ...

  6. 【神经网络与深度学习】如何在Caffe中配置每一个层的结构

    如何在Caffe中配置每一个层的结构 最近刚在电脑上装好Caffe,由于神经网络中有不同的层结构,不同类型的层又有不同的参数,所有就根据Caffe官网的说明文档做了一个简单的总结. 1. Vision ...

  7. 如何在Mac中配置Python虚拟环境,踩了好多坑

    如何在Mac中配置Python虚拟环境 1.安装virtualenv pip3 install virtualenv 2.安装virtualenvwrapper pip3 install virtua ...

  8. 【转】SonarQube配置自定义的CheckStyle代码规则

    原文地址:https://www.jianshu.com/p/ff1d800885ce 惯例第一步肯定是SonarQube的安装与运行配置了,但这部分不在本文主题内,网上一搜一大把,这里就不讲了,大家 ...

  9. linux 中配置假域名来测试

    1.linux中配置假域名 找到hosts文件进行编辑 命令:vim /etc/hosts 配置: #centos(本机IP)192.168.1.179 www.imooc.com(假域名,自己设置) ...

随机推荐

  1. Windows认证 | Windows本地认证

    Windows的登陆密码是储存在系统本地的SAM文件中的,在登陆Windows的时候,系统会将用户输入的密码与SAM文件中的密码进行对比,如果相同,则认证成功. SAM文件是位于%SystemRoot ...

  2. 第六届蓝桥杯java b组第二题

    立方变自身 观察下面的现象,某个数字的立方,按位累加仍然等于自身. 1^3 = 1 8^3 = 512 5+1+2=8 17^3 = 4913 4+9+1+3=17 … 请你计算包括1,8,17在内, ...

  3. Flume系列一之架构介绍和安装

    Flume架构介绍和安装 写在前面 在学习一门新的技术之前,我们得知道了解这个东西有什么用?我们可以使用它来做些什么呢?简单来说,flume是大数据日志分析中不能缺少的一个组件,既可以使用在流处理中, ...

  4. Vue.js+vue-element搭建属于自己的后台管理模板:什么是Vue.js?(一)

    Vue.js+vue-element搭建属于自己的后台管理模板:Vue.js是什么?(一) 前言 本教程主要讲解关于前端Vue.js框架相关技术知识,通过学习一步一步学会搭建属于自己的后台管理模板,并 ...

  5. Python-基于向量机SVM的文本分类

    项目代码见 Github: 1.算法介绍 2.代码所用数据 详情参见http://qwone.com/~jason/20Newsgroups/ 文件结构 ├─doc_classification.py ...

  6. Vue Element 导航子路由不选中问题

    首先说下遇到的问题 1.进入嵌套路由,当前父导航无法高亮显示 2.页面刷新后导航重置问题 3.在嵌套路由刷新页面也会导致导航重置问题 接下来是解决方案: elementUI 里面有个属性 defaul ...

  7. Spring MVC-从零开始-@RequestMapping 注解method属性

    1.@RequestMapping 处理 HTTP 的各种方法(GET, PUT, POST, DELETE  PATCH) package com.jt; import org.springfram ...

  8. 让视频丝滑流畅——N/A通用补帧傻瓜解决方案

    补帧就是字面意思,把24帧的视频通过算法即时补偿到更高的帧数,获得更优秀的观感体验 索尼大法brivia电视的中高端产品线中的motionflow技术,都可以实现硬件补帧,只需要把动态打开,相应的画面 ...

  9. [Note] CentOS 命令

    1. uninstall software install by yum install yum install -y [package-name] //无-y则交互式安装 yum remove [p ...

  10. 快学Scala 第十二课 (抽象类, 抽象字段, 提前定义)

    抽象类: Scala 抽象类中,抽象方法不需要使用abstract. 在子类中重写超类抽象方法时,不需要使用override. abstract class Person { def say(s: S ...