配置集群本地域加密¶
警告
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 集成。
启用集群本地域 TLS¶
要启用 cluster-local-domain-tls,请更新 knative-serving 命名空间中的 config-network ConfigMap
-
运行以下命令编辑您的
config-networkConfigMapkubectl 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 Service
-
使用
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 集成。