跳到内容

Serving 加密概述

警告

Knative Serving 的加密功能 cluster-local-domain-tlssystem-internal-tls 处于实验阶段。请谨慎使用!

Knative Serving 加密分为三个部分:

  1. 集群外部(cluster external domain)的入口层 HTTPS,例如 myapp-<namespace>.example.com
  2. 集群内部(cluster local domains)的入口层 HTTPS,例如 myapp.<namespace>.svc.cluster.local
  3. Knative 内部组件(ingress-controlleractivatorqueue-proxy)之间的 HTTPS。

Overview of Knative encryption

注意

目前,所有控制平面流量(包括 Kubernetes PreStopHooks 和指标等元数据)均未加密。

详细介绍

各个部分相互独立,并且(可以)使用不同的证书颁发机构(CA)来签署证书。

外部域名加密

External domain

  • 证书的公用名称/主题备用名称 (CN/SAN) 包含 Knative 服务的外部域名,例如 myapp-<namespace>.example.com
  • 这些证书由 ingress-controller 的外部端点通过 SNI 进行托管。
  • 调用者必须信任签署证书的(外部)CA(这超出了 Knative 的范围)。
  • 这些证书可以通过手动方式提供,也可以通过启用自动证书预配来提供。

有关此功能的更多信息,请参阅 配置外部域名加密

集群内加密

Cluster local domain

  • 证书的公用名称/主题备用名称 (CN/SAN) 包含 Knative 服务的集群内域名,例如 myapp.namespace.svc.cluster.localmyapp.namespace.svcmyapp.namespace
  • 这些证书由 ingress-controller 的集群内端点通过 SNI 进行托管。
  • 调用者必须信任签署证书的 CA(这超出了 Knative 的范围)。一种方法是使用 cert-manager 的 trust-manager
  • 为了创建证书,Knative 依赖于 cert-manager 和 Knative 的 cert-manager 集成。需要安装并配置它们才能使该功能正常工作。

有关此功能的更多信息,请参阅 配置集群内域名加密

Knative 系统内部加密

Knative system internal

启用此配置后,Knative 系统内部组件(Ingress-Controller、Activator、Queue-Proxy)会托管 TLS 端点。

  • 为了创建证书,Knative 依赖于 cert-manager 和 Knative 的 cert-manager 集成。需要安装并配置它们才能使该功能正常工作。
  • 将使用特定的 SAN 来验证每次连接。每个组件都需要信任签署证书的 CA(可能是完整的证书链)。为此,Knative 系统组件将使用并信任提供的 CABundle。CA bundle 需要由集群管理员提供,可能使用 cert-manager 的 trust-manager

有关此功能的更多信息,请参阅 配置 Knative 系统内部加密

我们使用分析和 cookie 来了解网站流量。有关您使用我们网站的信息会与 Google 共享以达到此目的。了解更多。