Kubernetes-based PaaS Platform Architecture¶
A Kubernetes-based PaaS (Platform as a Service) architecture extends the Kubernetes container orchestration system to create a complete software research, development, and deployment platform.^[400-devops__06-Kubernetes__k8s-paas__README.md]
Core Architecture¶
The platform is designed as a comprehensive ecosystem centered around the Kubernetes cluster.^[400-devops__06-Kubernetes__k8s-paas__README.md] Within this architecture, a wide array of infrastructure and tooling components are deployed directly onto the K8S cluster^[400-devops__06-Kubernetes__k8s-paas__README.md]. This design choice allows for the dynamic scaling of these services, as they run as containers within the cluster management environment rather than on static, separate servers.^[400-devops__06-Kubernetes__k8s-paas__README.md]
Key Components¶
The architecture integrates several critical tools to automate and manage the software delivery lifecycle:
- Orchestration & Container Runtime: Utilizes Kubernetes for cluster management and [[Docker]] as the container engine.^[400-devops__06-Kubernetes__k8s-paas__README.md]
- Registry & Storage: Employs Harbor as an enterprise-grade container registry and etcd for key-value storage.^[400-devops__06-Kubernetes__k8s-paas__README.md]
- CI/CD:
- Jenkins: Used for continuous integration and continuous construction/delivery.^[400-devops__06-Kubernetes__k8s-paas__README.md]
- Spinnaker: Integrated for continuous delivery pipelines and deployment management.^[400-devops__06-Kubernetes__k8s-paas__README.md]
- Configuration Management: Utilizes Apollo (specifically Apollo ConfigService, Portal, and AdminService) for centralized configuration management across microservices like Dubbo.^[400-devops__06-Kubernetes__k8s-paas__README.md]
- Code Repositories: Supports GitLab and Gitee for version control.^[400-devops__06-Kubernetes__k8s-paas__README.md]
- Monitoring & Observability:
- Prometheus: Acts as the monitoring backbone for collecting Metrics from nodes, containers, and business applications.^[400-devops__06-Kubernetes__k8s-paas__README.md]
- Grafana: Provides visualization for the Metrics collected by Prometheus.^[400-devops__06-Kubernetes__k8s-paas__README.md]
- Logging: Integrates an ELK architecture (Elasticsearch, Logstash, Kibana) alongside Filebeat and Kafka for log aggregation and analysis.^[400-devops__06-Kubernetes__k8s-paas__README.md]
- Service Discovery: Uses Zookeeper (specifically for Dubbo services) and CoreDNS.^[400-devops__06-Kubernetes__k8s-paas__README.md]
Operational Goals¶
The ultimate objective of this architecture is to achieve a high level of automation ("点点点" or "point-and-click") for deployment and maintenance operations.^[400-devops__06-Kubernetes__k8s-paas__README.md] By combining CI/CD pipelines with centralized configuration, monitoring, and logging, the platform aims to streamline the entire lifecycle from code commit to production deployment.
Sources¶
^[400-devops__06-Kubernetes__k8s-paas__README.md]