As an open-source project on GitHub, KubeSphere is home to a community with thousands of users. Many of them are running KubeSphere for their production workloads. For the installation on Linux, KubeSphere can be deployed both in clouds and in on-premises environments, such as AWS EC2, Azure VM and bare metal.
The installation process is easy and friendly as KubeSphere provides users with KubeKey, a lightweight installer that supports the installation of Kubernetes, KubeSphere and related add-ons. KubeKey not only helps users to create clusters online but also serves as an air-gapped installation solution for the environment with no Internet access.
Here is a list of available installation options.
- All-in-one installation: Install KubeSphere on a single node. It is only for users to quickly get familiar with KubeSphere.
- Multi-node installation: Install KubeSphere on multiple nodes. It is for testing or development.
- Air-gapped installation on Linux: All images of KubeSphere have been encapsulated into a package. It is convenient for air-gapped installation on Linux machines.
- High availability installation: Install a highly-available KubeSphere cluster with multiple nodes which is used for the production environment.
- Minimal Packages: Only install the minimum required system components of KubeSphere. Here is the minimum resource requirement:
- 2 CPUs
- 4GB RAM
- 40GB Storage
- Full Packages: Install all available system components of KubeSphere such as DevOps, service mesh, and alerting.
If you have an existing Kubernetes cluster, see Overview of Installing on Kubernetes.
- As images will be pulled from the Internet, your environment must have Internet access. Otherwise, you need to install KubeSphere in an air-gapped environment.
- For all-in-one installation, the only one node is both the master and the worker.
- For multi-node installation, you need to provide host information in a configuration file.
- Your Linux host must have OpenSSH Server installed.
- See Port Requirements before installation.
Developed in Go language, KubeKey represents a brand-new installation tool as a replacement for the ansible-based installer used before. KubeKey provides users with flexible installation choices, as they can install KubeSphere and Kubernetes separately or install them together, which is convenient and efficient.
There are several scenarios to use KubeKey:
- Install Kubernetes only;
- Install Kubernetes and KubeSphere together in one command;
- Install Kubernetes first, and deploy KubeSphere on it using ks-installer;
- Scale a cluster;
- Upgrade a cluster;
- Install Kubernetes-related add-ons (Chart or YAML).
Quick Installation for Development and Testing
KubeSphere has decoupled some components since v2.1.0. KubeKey only installs necessary components by default as this way features fast installation and minimal resource consumption. If you want to enable enhanced pluggable functionalities, see Enable Pluggable Components for details.
The quick installation of KubeSphere is only for development or testing since it uses Local Volume based on openEBS to provide storage services by default. If you want a production installation, see High Availability Configurations.
Overview of Pluggable Components
KubeSphere has decoupled some core feature components since v2.1.0. These components are designed to be pluggable, which means you can enable any of them both before and after the installation. By default, KubeKey does not install these pluggable components. For more information, see Enable Pluggable Components.
KubeSphere allows you to configure persistent storage services both before and after installation. Meanwhile, KubeSphere supports a variety of open-source storage solutions (for example, Ceph and GlusterFS) as well as commercial storage products. Refer to Persistent Storage Configurations for detailed instructions regarding how to configure the storage class before you install KubeSphere.
For more information about how to set different storage classes for your workloads after you install KubeSphere, see Persistent Volumes and Storage Classes.
Cluster Operation and Maintenance
Add new nodes
With KubeKey, you can increase the number of nodes to meet higher resource needs after the installation, especially in a production environment. For more information, see Add New Nodes.
You need to drain a node before you remove it. For more information, see Remove Nodes.
Uninstalling KubeSphere means it will be removed from your machine, which is irreversible. Please be cautious with the operation.
For more information, see Uninstall KubeSphere and Kubernetes.