Architecture

Separation of front and back ends

KubeSphere adopts the separation of front and back ends, also realizes a cloud native design, the back ends’ service components can communicate with external systems through the REST API, see API documentation for more details. All component are included in the architecture diagram below. KubeSphere can run anywhere from on-premise datacenter to any cloud to edge. In addition, it can be deployed on any Kubernetes distribution.

Architecture - 图1

Components List

Back-end componentFunction description
Ks-accountprovides API relating to the user and the privilege management
Ks-apiserverThe API interface of the entire cluster management, the communication hub between the modules within the cluster, and the cluster security control
Ks-apigatewayisresponsible for handling service requests and all tasks
Ks-consoleoffers KubeSphere console service
Ks-controller-managerimplements business logic, such as creating corresponding permissions for enterprise space; Or when creating a service policy, generate the corresponding
Metrics-serverKubernetes’ monitoring component collects Metrics information from Kubelet of each node.
Prometheusprovides clusters, nodes, workloads, API objects and other related monitoring data and services
Elasticsearchprovides cluster log indexing, querying, data management and other services, which can also be used to reduce resource consumption at the time of installation against your existing ES
Fluent Bitenables log receiving and forwarding. Collected information can be send to ElasticSearch, Kafka
Jenkinsprovides CI/CD pipeline service
SonarQubeis an optional installation that provides code static checking and quality analysis
source-to-imagewill automatically compile and package the Source code into Docker Image, which is convenient to quickly build Image
Istioprovides microservice governance and traffic control, such as grayscale publishing, canary publishing, fuse, traffic mirror and so on
Jaegercollects Sidecar data and provided the distributed Tracing service
OpenPitrixprovides application templates, application deployment and management services
Alertprovides custom Alert service
Notificationis an universal Notification service; it currently supports mail Notification
redisstores the data of ks-console and ks-account in the memory storage system
MySQLis the cluster back-end component database for monitoring, alarm, DevOps, OpenPitrix Shared MySQL service
PostgreSQLSonarQube and Harbor’s back-end database
OpenLDAPis responsible for centralized storage and management of user account information and docking with external LDAP
Storagebuilt-in CSI plug-in docking cloud platform storage services, have optional installation of open source NFS/Ceph/Gluster client
Networkcan optionally install Calico/Flannel and other open source network plug-ins to support docking with cloud platform SDN

3rd Party Tools

In addition to the components listed above, KubeSphere also supports Harbor and GitLab as optional installations that you can install according to your project requires.

Service Components

Each component has many service components, see Service Components for more details.

Architecture - 图2