# 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

  1. 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 run kubectl to 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
      
      Copied!
  2. Modify the secure-registries field in the docker/daemon file.

    # Edit the /etc/docker/daemon.json file on *each node*
    ...
    "insecure-registries": [
      "0.0.0.0/0"
    ],
    ...
    
    # Restart docker daemon
    systemctl restart docker
    
    Copied!
  3. Download the Erda installation package (opens new window) on the Kubernetes master node and unzip it.

    tar -xzvf erda-linux.tar.gz
    cd erda-release
    
    Copied!

    Tips

    Only Linux systems are supported.

  4. 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:/ /netdata
      
      Copied!
    • If not, please run the following script, which will install NFS components, create / netdata folder on the current node and mount it on the remaining nodes.

      cd erda-helm/
      bash scripts/storage_prepare.sh
      
      Copied!