# Prerequisites
# Hardware Resource Configuration
Tips
The following configuration does not contain the resources required to run Kubernetes components.
| Specification | Demo (1~10 nodes) | Prod (3~50 nodes) | Prod (51~100 nodes) | Prod (101~200 nodes) | Prod (201~300 nodes) |
|---|---|---|---|---|---|
| CPU (core) | 8 | 32 | 48 | 64 | 80 |
| Memory (GB) | 32 | 96 | 128 | 192 | 288 |
| Storage (GB) | 400 | 4,000 | 6,000 | 12,000 | 16,000 |
| Recommended Configuration | Scale: 2 nodes Specification: 4 cores/16 GB/200 GB | - | - | - | - |
# Installation Requirements
- Kubernetes 1.16~1.20 (install the Ingress Controller (opens new window) component)
- Docker 19.03 and later
- CentOS 7.4 and later
- Helm 3 and later
- Domain name (optional, configure by Kubernetes Ingress to access Erda platform, such as *.erda.io)
# Preparations
Perform the following operations in the Kubernetes cluster (skip the step if you have already done):
Confirm that there is a kubeconfig file under the
~/.kube/path of the master node, and you can runkubectlto access the cluster.Confirm that Helm has been installed under the master node (here take version 3.5.2 as an example).
# Download the Helm installation package wget https://get.helm.sh/helm-v3.5.2-linux-amd64.tar.gz # Unzip the installation package tar -xvf helm-v3.5.2-linux-amd64.tar.gz # To install Helm 3, find the Helm binary in the unpacked directory linux-amd64 and move it to the desired target location mv linux-amd64/helm /usr/local/bin/helm # The Erda chart package is in the local file with no need to add repo. For operations of adding repo for Helm, please refer to the official documentation
Modify the
secure-registriesfield in thedocker/daemonfile.# Edit the /etc/docker/daemon.json file on *each node* ... "insecure-registries": [ "0.0.0.0/0" ], ... # Restart docker daemon systemctl restart dockerDownload the Erda installation package (opens new window) on the Kubernetes master node and unzip it.
tar -xzvf erda-linux.tar.gz cd erda-releaseTips
Only Linux systems are supported.
Set NFS as network shared storage on each node.
If you already have network shared storage (such as Alibaba Cloud), please run the following commands to set it on each node:
mount -t <storage_type> <your-share-storage-node-ip>:<your-share-storage-dir> /netdata # For example, assuming that you have an Alibaba Cloud NAS v4 service as shared network storage and the host of the Alibaba Cloud NAS is file-system-id.region.nas.aliyuncs.com, mount the directory with the following command: mount -t nfs -o vers=4,minorversion=0,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-id.region.nas.aliyuncs.com:/ /netdataIf not, please run the following script, which will install NFS components, create
/ netdatafolder on the current node and mount it on the remaining nodes.cd erda-helm/ bash scripts/storage_prepare.sh
