主题
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.txt | 7 个组件镜像清单(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.yaml | Traefik 泛域名 IngressRoute → kourier svc |
| servicemonitor.yaml | 4 个控制面组件接入 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→ Harbor192.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