5.7.9. 路由主机名


为了在外部公开服务,OpenShift Container Platform 路由允许您将服务与外部可访问的主机名相关联。然后,可以使用这个边缘主机名将流量路由到该服务。

当来自不同命名空间的多个路由声明同一主机时,最旧的路由会胜出并声明命名空间。如果同一命名空间中定义了具有不同路径字段的其他路由,则会添加这些路径。如果使用相同路径的多个路由,则最旧的采用优先级。

造成这个问题的一个后果是,如果您主机名有两个路由:较早的路由以及较新的名称。如果其他人有指向您在创建其他两个路由时创建的同一主机名的路由,那么当您删除旧的路由时,您的声明将不再有效。现在,其他命名空间会声明主机名,并且您的声明会丢失。

具有指定主机的路由:

apiVersion: v1
kind: Route
metadata:
  name: host-route
spec:
  host: www.example.com  1
  to:
    kind: Service
    name: service-name

1
指定用于公开服务的外部可访问主机名。

没有主机的路由:

apiVersion: v1
kind: Route
metadata:
  name: no-route-hostname
spec:
  to:
    kind: Service
    name: service-name

如果没有提供主机名作为路由定义的一部分,OpenShift Container Platform 会自动为您生成主机名。生成的主机名的格式如下:

<route-name>[-<namespace>].<suffix>

以下示例显示了 OpenShift Container Platform 生成的主机名,用于上述路由配置的主机名,而无需将主机添加到命名空间 mynamespace 中:

生成的主机名

no-route-hostname-mynamespace.router.default.svc.cluster.local 1

1
生成的主机名后缀是默认路由子域 router.default.svc.cluster.local

集群管理员也可以 自定义用作其环境的默认路由子域的后缀

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.