6.9. 通过 Ingress 对象创建路由
一些生态系统组件与 Ingress 资源集成,但与路由资源不集成。为了涵盖这种情况,红帽构建的 MicroShift 会在创建 Ingress 对象时自动创建受管路由对象。当相应 Ingress 对象被删除时,这些路由对象会被删除。
流程
在 MicroShift 控制台的 Red Hat build 中或通过
oc create
命令定义 Ingress 对象:Ingress 的 YAML 定义
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
route.openshift.io/termination
注解可用于配置Route
的spec.tls.termination
字段,因为Ingress
没有此字段。可接受的值为edge
、passthrough
和reencrypt
。所有其他值都会被静默忽略。当注解值未设置时,edge
是默认路由。模板文件中必须定义 TLS 证书详细信息,才能实现默认的边缘路由。- 3
- 在使用
Ingress
对象时,您必须指定一个显式主机名,这与使用路由时不同。您可以使用<host_name>.<cluster_ingress_domain>
语法(如apps.openshiftdemos.com
)以利用*.<cluster_ingress_domain>
通配符 DNS 记录,为集群提供证书。否则,您必须确保有一个用于所选主机名的 DNS 记录。如果您在
route.openshift.io/termination
注解中指定passthrough
值,在 spec 中将path
设置为''
,将pathType
设置为ImplementationSpecific
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc apply -f ingress.yaml
$ oc apply -f ingress.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 2
route.openshift.io/destination-ca-certificate-secret
可用于 Ingress 对象来定义带有自定义目的地证书(CA)的路由。该注解引用一个 kubernetes secret,secret-ca-cert
将插入到生成的路由中。-
要从 ingress 对象使用目标 CA 指定路由对象,您必须在 secret 的
data.tls.crt
specifier 中创建一个带有 PEM 编码格式的证书的kubernetes.io/tls
或Opaque
类型 secret。
-
要从 ingress 对象使用目标 CA 指定路由对象,您必须在 secret 的
列出您的路由:
oc get routes
$ oc get routes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 结果包括一个自动生成的路由,其名称以
frontend-
开头:NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD frontend-gnztq www.example.com frontend 443 reencrypt/Redirect None
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD frontend-gnztq www.example.com frontend 443 reencrypt/Redirect None
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您检查这个路由,它会类似于:
自动生成的路由的 YAML 定义
Copy to Clipboard Copied! Toggle word wrap Toggle overflow