Serving 加密概述¶
警告
Knative Serving 加密功能 cluster-local-domain-tls
和 system-internal-tls
處於實驗階段。請謹慎使用!
Knative Serving 加密分為三個部分
- 叢集外部的入口層上的 HTTPS (叢集外部網域,例如
myapp-<namespace>.example.com
)。 - 叢集內部的入口層上的 HTTPS (叢集本機網域,例如
myapp.<namespace>.svc.cluster.local
)。 - Knative 內部元件 (
ingress-controller
、activator
、queue-proxy
) 之間的 HTTPS。
注意
目前,所有控制平面流量 (包括 Kubernetes PreStopHooks 和指標等中繼資料) 都未加密。
詳細說明各部分¶
各部分彼此獨立,並且(可以)使用不同的憑證授權機構來簽署憑證。
外部網域加密¶
- 憑證 CN/SAN 包含 Knative 服務的外部網域,例如
myapp-<namespace>.example.com
。 - 憑證由 ingress-controller 的外部端點使用 SNI 來託管。
- 呼叫者必須信任簽署憑證的 (外部) CA(這不在 Knative 的範圍內)。
- 這些憑證可手動提供或透過啟用自動憑證佈建來提供。
請參閱設定外部網域加密,以取得此功能的更多資訊。
叢集本機加密¶
- 憑證 CN/SAN 包含 Knative 服務的叢集本機網域,例如
myapp.namespace.svc.cluster.local
、myapp.namespace.svc
、myapp.namespace
。 - 憑證由 ingress-controller 的叢集本機端點使用 SNI 來託管。
- 呼叫者必須信任簽署憑證的 CA(這不在 Knative 的範圍內)。一種方法是使用 cert-manager 的 trust-manager。
- 為了建立憑證,Knative 仰賴 cert-manager 和 Knative cert-manager 整合。它們需要安裝並設定才能使此功能運作。
請參閱設定叢集本機網域加密,以取得此功能的更多資訊。
Knative 系統內部加密¶
啟用此設定時,Knative 系統內部元件 (Ingress-Controller、Activator、Queue-Proxy) 會託管 TLS 端點。
- 為了建立憑證,Knative 仰賴 cert-manager 和 Knative cert-manager 整合。它們需要安裝並設定才能使此功能運作。
- 使用特定的 SAN 來驗證每個連線。每個元件都需要信任簽署憑證的 CA(可能是完整鏈)。為此,Knative 系統元件將會取用並信任提供的
CABundle
。CA 組合需要由叢集管理員提供,可能使用 cert-manager 的 trust-manager。
請參閱設定 Knative 系統內部加密,以取得此功能的更多資訊。