配置集群本地域加密¶
警告
Knative Serving 加密功能 cluster-local-domain-tls
和 system-internal-tls
处于实验阶段。请谨慎使用!
开始之前¶
您必须满足以下要求才能启用安全的 HTTPS 连接
- 必须安装 Knative Serving。有关安装 Serving 组件的详细信息,请参阅 Knative 安装指南。
警告
此功能目前仅支持 Kourier 和 Istio 作为网络层。
安装和配置 cert-manager 及其集成¶
首先,您需要安装和配置 cert-manager
以及 Knative cert-manager 集成。有关详细信息,请参阅 配置 Knative cert-manager 集成。
启用 cluster-local-domain-tls¶
要启用 cluster-local-domain-tls
,请更新 knative-serving
命名空间中的 config-network
ConfigMap
-
运行以下命令来编辑您的
config-network
ConfigMapkubectl edit configmap config-network -n knative-serving
-
在
data
部分下添加cluster-local-domain-tls: Enabled
属性apiVersion: v1 kind: ConfigMap metadata: name: config-network namespace: knative-serving data: ... cluster-local-domain-tls: Enabled ...
-
重新启动 Knative Serving 控制器以启动 Knative cert-manager 集成
kubectl rollout restart deploy/controller -n knative-serving
恭喜!现在 Knative 已配置为为集群本地域获取和更新 TLS 证书。
验证¶
-
部署 Knative 服务
-
使用
kubectl get ksvc -n <your-namespace> -o yaml
检查 URL -
服务 URL 集群本地域 (https://helloworld.test.svc.cluster.local) 现在应该为 https
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld
namespace: test
spec:
# ...
status:
address:
# cluster-local-domain:
url: https://helloworld.test.svc.cluster.local
# ...
# external domain:
url: http://helloworld.first.example.com
信任¶
注意
关于信任的简要说明,所有调用 Knative 服务的集群本地域的客户端都需要信任签署证书的证书颁发机构。这超出了 Knative 的范围,但需要解决以确保系统正常工作。尤其是在证书颁发机构执行 CA 或中间证书的轮换时。有关详细信息,请参阅 配置 Knative cert-manager 集成。