目录
Kubernetes 在生产环境中架构
-
Client 层:即外部用户、客户端等;
-
服务访问层:即由 Traefik Ingress 实现服务发现、负载均衡和路由规则定义等;
-
业务应用层:即基于 Kubernetes 之上构建和运行的企业业务应用,如:CI/CD、微服务项目、监控告警和日志管理、私有镜像仓库等;
-
基础设施层:即由 Kubernetes、Calico SDN、Ceph SDS 等系统组成的基础设施服务。
基础设施层
- Kubernetes
- Calico SDN
- Ceph SDS 或 NFS
业务应用层
- 镜像管理:使用 Harbor 私有镜像仓库服务;
- 日志管理:使用 ELK Stack。
- 监控告警管理:使用 Prometheus 和 Grafana;
- 微服务架构:使用 Istio 的 Service Mesh 方案,或者使用 APIGW;
- DevOps:使用 Gitlab、Jenkins 等 CI/CD 工具;
- 单体应用:无状态类服务使用 deployment,有状态类服务则使用 Statefulset,如果关联的服务较多且复杂则使用 Helm。
- 规划好 Namespace:应当做到每个 Namespace 专属用于某类型的应用,例如:monitor namespace 用于统一管理监控告警、日志管理方面的 pod、service、pvc、ingress 等资源对象。
服务访问层
外部客户端访问 Kubernetes Cluster 内部的 Service、LB 和路由规则定义使用 Ingress 实现。此外,应当实现 Ingress 的 HA。