17.2. 创建路由


您可以使用 Web 控制台或 CLI 创建不受保护和安全的路由。

使用 Web 控制台,您可以进入 Routes 页面,在导航的 Applications 部分找到。

点击 Create Route 在项目中创建路由:

图 17.1. 使用 Web 控制台创建路由

使用 Web 控制台创建路由

使用 CLI 时,以下示例会创建一个不受保护的路由:

$ oc expose svc/frontend --hostname=www.example.com

新路由从服务继承名称,除非您使用 --name 选项指定名称。

上面创建的非安全路由的 YAML 定义

apiVersion: v1
kind: Route
metadata:
  name: frontend
spec:
  host: www.example.com
  path: "/test" 1
  to:
    kind: Service
    name: frontend

1
对于 基于路径的路由,请指定与 URL 相比的路径组件。

有关使用 CLI 配置路由的详情,请参考 Route Types

非安全的路由是默认配置,因此最容易设置。但是,安全路由 为连接保持私有提供安全性。要创建使用密钥和证书加密的安全 HTTPS 路由(PEM-format 文件必须单独生成和签名),您可以使用 create route 命令并选择性地提供证书和密钥。

注意

TLS 是 HTTPS 和其他加密协议的 SSL 替代。

$ oc create route edge --service=frontend \
    --cert=${MASTER_CONFIG_DIR}/ca.crt \
    --key=${MASTER_CONFIG_DIR}/ca.key \
    --ca-cert=${MASTER_CONFIG_DIR}/ca.crt \
    --hostname=www.example.com

上面创建的安全路由的 YAML 定义

apiVersion: v1
kind: Route
metadata:
  name: frontend
spec:
  host: www.example.com
  to:
    kind: Service
    name: frontend
  tls:
    termination: edge
    key: |-
      -----BEGIN PRIVATE KEY-----
      [...]
      -----END PRIVATE KEY-----
    certificate: |-
      -----BEGIN CERTIFICATE-----
      [...]
      -----END CERTIFICATE-----
    caCertificate: |-
      -----BEGIN CERTIFICATE-----
      [...]
      -----END CERTIFICATE-----

目前,不支持密码保护的密钥文件。启动后,HAProxy 会提示输入密码,且无法自动执行此过程。要从密钥文件中删除密码短语,您可以运行以下命令:

# openssl rsa -in <passwordProtectedKey.key> -out <new.key>

您可以在不指定密钥和证书的前提下创建安全路由,在这种情况下,路由器的默认证书 将用于 TLS 终止。

注意

OpenShift Container Platform 中的 TLS 终止依赖于 SNI 来提供自定义证书。任何在端口 443 上收到的非SNI 流量都使用 TLS 终止处理,默认证书可能与请求的主机名不匹配,从而导致验证错误。

如需有关所有类型的 TLS 终止 以及 基于路径的路由 的更多信息,请参阅 架构部分

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.