跳过正文
Kubernetes【knative】
  1. 云原生/

Kubernetes【knative】

·447 字·1 分钟·
目录
knative - 这篇文章属于一个选集。
§ 1: 本文

cert-manager 为您的 Kubernetes 或 OpenShift 集群中的工作负载创建 TLS 证书,并在证书到期前自动续期。

Knative
#

申请创建一个 Certificate 资源后,cert-manager 会自动执行以下操作

核心概括:

  1. 生成私钥:在集群内部创建一个加密密钥。
  2. 向 CA 申请:通过 Issuer(之前配置的 Cloudflare DNS-01)向 Let’s Encrypt 证明你拥有 uat.artoio.com 域名。
  3. 保存为 Secret:验证通过后,将签署好的证书和私钥存入 gitlab-tls-secret。
  4. 自动续期:在证书过期前(通常是 90 天内的最后 30 天),自动重新触发验证逻辑。

Knative Serving
#

官方文档: serving

  1. 安装 crds
kubectl apply -f https://github.com/knative/serving/releases/download/knative-v1.20.1/serving-crds.yaml
  1. 安装 core
kubectl apply -f https://github.com/knative/serving/releases/download/knative-v1.20.1/serving-core.yaml
  1. 安装 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
  1. 配置 knative domain
kubectl patch configmap/config-domain \
      --namespace knative-serving \
      --type merge \
      --patch '{"data":{"artoio.com":""}}'
  1. 自动创建域名 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

自动签署证书
#

external-domain-tls

需要部署 cert-manager

  1. config-certmanager增加ClusterIssuer
kubectl edit configmap config-certmanager -n knative-serving

增加

  issuerRef: |
    kind: ClusterIssuer
    name: letsencrypt-cloudflare
  1. 配置 external-domain-tls
kubectl edit configmap config-network -n knative-serving

添加

external-domain-tls: "Enabled"
  1. 重启服务
kubectl rollout restart deploy/controller -n knative-serving

Knative Eventing
#

官方文档: eventing

结语
#


参考:

knative - 这篇文章属于一个选集。
§ 1: 本文

相关文章


微信赞赏
微信赞赏
关注公众号
关注公众号
支付宝赞赏
支付宝赞赏