cert-manager 为您的 Kubernetes 或 OpenShift 集群中的工作负载创建 TLS 证书,并在证书到期前自动续期。
Knative#
申请创建一个 Certificate 资源后,cert-manager 会自动执行以下操作
核心概括:
- 生成私钥:在集群内部创建一个加密密钥。
- 向 CA 申请:通过 Issuer(之前配置的 Cloudflare DNS-01)向 Let’s Encrypt 证明你拥有 uat.artoio.com 域名。
- 保存为 Secret:验证通过后,将签署好的证书和私钥存入 gitlab-tls-secret。
- 自动续期:在证书过期前(通常是 90 天内的最后 30 天),自动重新触发验证逻辑。
Knative Serving#
官方文档: serving
- 安装 crds
kubectl apply -f https://github.com/knative/serving/releases/download/knative-v1.20.1/serving-crds.yaml
- 安装 core
kubectl apply -f https://github.com/knative/serving/releases/download/knative-v1.20.1/serving-core.yaml
- 安装 networking
本次使用 istio 作为 networking
kubectl apply -l knative.dev/crd-install=true -f https://github.com/knative-extensions/net-istio/releases/download/knative-v1.20.1/istio.yaml
kubectl apply -f https://github.com/knative-extensions/net-istio/releases/download/knative-v1.20.1/istio.yaml
# knative istio controller
kubectl apply -f https://github.com/knative/net-istio/releases/download/knative-v1.20.1/net-istio.yaml
# External IP:建议部署 MetalLB 获取外网 IP
kubectl --namespace istio-system get service istio-ingressgateway
- 配置 knative domain
kubectl patch configmap/config-domain \
--namespace knative-serving \
--type merge \
--patch '{"data":{"artoio.com":""}}'
- 自动创建域名 domain-mapping
# config-network
kubectl -n knative-serving edit cm config-network
添加
autocreate-cluster-domain-claims: "true"
检查
root@kubernetes01:~# kubectl get domainmappings.serving.knative.dev -A
NAMESPACE NAME URL READY REASON
default demo.uat.artoio.com https://demo.uat.artoio.com True
root@kubernetes01:~# kn domain list
NAME URL READY KSVC
demo.uat.artoio.com https://demo.uat.artoio.com True demo
自动签署证书#
需要部署 cert-manager
- config-certmanager增加ClusterIssuer
kubectl edit configmap config-certmanager -n knative-serving
增加
issuerRef: |
kind: ClusterIssuer
name: letsencrypt-cloudflare
- 配置 external-domain-tls
kubectl edit configmap config-network -n knative-serving
添加
external-domain-tls: "Enabled"
- 重启服务
kubectl rollout restart deploy/controller -n knative-serving
Knative Eventing#
官方文档: eventing
结语#
参考:


