Skip to content

Knative Serving on uat1(Kourier)

离线环境(K8s 无法访问 gcr.io/docker.io)在 uat1(RKE2)集群部署 Knative Serving v1.23.0:Kourier 网络层 + 复用现有 Traefik 泛域名入口 + KPA 自动伸缩/缩容到零 + 接入 rancher-monitoring。

文件说明
部署文档.md完整部署手册:镜像同步、离线化、安装、最佳实践配置、验证、踩坑、生产注意事项、卸载
操作文档.md日常运维:发布/回滚、伸缩调参、域名管理、监控指标、排障速查
deploy.sh一键部署(幂等;--sync 先同步镜像,需 export HARBOR_PASSWORD 或 .secrets.env)
sync-images.sh镜像同步:gcr.m.daocloud.io / docker.m.daocloud.io → Harbor
images.txt7 个组件镜像清单(digest 固化)
serving-crds.yaml官方 v1.23.0 CRDs(原样)
serving-core.yaml / kourier.yaml官方原包(留存对照)
serving-core-offline.yaml / kourier-offline.yaml离线版:镜像改 Harbor、kourier svc 改 ClusterIP
config-knative.yaml最佳实践配置:domain/network/defaults/autoscaler/gc/observability
ha-patches.yaml核心组件 PDB(副本/HPA min 由 deploy.sh 处理)
traefik-ingressroute.yamlTraefik 泛域名 IngressRoute → kourier svc
servicemonitor.yaml4 个控制面组件接入 rancher-monitoring
examples/helloworld.yaml验证用 ksvc(镜像在 Harbor)

关键信息

  • 服务访问(内网):http://<服务名>-<命名空间>.knative.ai-ear.cn(任一节点 IP:80,Host 头或内网 DNS 泛解析 *.knative.ai-ear.cn → 192.168.122.31)
  • 链路:节点 hostPort 80 → Traefik(泛域名 IngressRoute)→ Kourier(ClusterIP)→ Activator(缩零)/ queue-proxy → 业务 Pod
  • 版本:Knative Serving v1.23.0 + net-kourier v1.23.0(最低 K8s 1.34,本集群 v1.35.6;EOL 2027-02-02)
  • 镜像源:gcr.m.daocloud.io/knative-releases → Harbor 192.168.122.156:30000/knative
  • HA:controller/webhook/autoscaler/activator/kourier-gateway 均 2 副本(HPA min=2)+ PDB
  • 伸缩:KPA,默认目标并发 100,缩容到零开启(实测冷启动约 10s)
  • 监控:Prometheus 8 个控制面 target 全 up;核心指标 kn_revision_pods_desired / kn_revision_concurrency_stable
  • 已知限制:queue-proxy 请求级指标 prometheus 拉取在 v1.23 未生效(OTel 过渡期),后续接 OTel Collector;泛域名 HTTPS 需申请 *.knative.ai-ear.cn 证书后在 IngressRoute 加 TLS