Files
docs_tfgrid_get_started/docs/mycelium-cloud/getting-started.md

7.6 KiB

sidebar_position
sidebar_position
2

Getting Started with Mycelium Cloud

Deploy your first Kubernetes cluster on the ThreeFold Grid in just a few steps.

Prerequisites

Before you begin, make sure you have:

  • Mycelium installed - Required for cluster access (Installation guide)
  • SSH key pair - For node access
  • kubectl installed - For managing your cluster (Install kubectl)
  • Credits - To fund your deployment

Step 1: Create Your Account

Sign Up

  1. Go to vdc.grid.tf/sign-up
  2. Fill in your details:
    • Email address
    • Password
    • Confirm password
  3. Click Sign Up

Verify Email

  1. Check your email inbox
  2. Click the verification link
  3. Your account is now active

Step 2: Set Up Your Account

Add Credits

  1. Log in to your dashboard
  2. Navigate to Credits or Billing section
  3. Add funds to your account
    • Choose payment method
    • Enter amount
    • Complete payment

Your credits will be used to pay for cluster resources (CPU, RAM, storage, time).

Add SSH Key

  1. Navigate to SSH Keys section (or Add SSH card)
  2. Click Add SSH Key
  3. Paste your public key (usually ~/.ssh/id_rsa.pub)
  4. Give it a name
  5. Save

🔐 Need an SSH Key?

If you don't have one:

# Generate a new SSH key pair
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

# View your public key
cat ~/.ssh/id_rsa.pub

Copy the output and paste it into the dashboard.

Step 3: Deploy Your First Cluster

Access Deployment Page

  1. From your dashboard, click Deploy Cluster or New Cluster
  2. You'll see the cluster configuration wizard

Configure Your Cluster

Basic Settings

  • Cluster Name: Give your cluster a unique name
  • Description: Optional description of the cluster purpose

Master Nodes

Configure your control plane nodes:

  • Count: Number of master nodes
    • 1 for development/testing
    • 3 for production (high availability)
  • CPU: Number of cores per master (2-4 recommended)
  • RAM: Memory per master (4-8GB recommended)
  • Storage: Disk space per master (20-50GB)

Worker Nodes

Configure your workload nodes:

  • Count: Number of worker nodes (1-10+)
  • CPU: Cores per worker (based on workload)
  • RAM: Memory per worker (based on workload)
  • Storage: Disk space per worker (based on workload)

Example Configuration (Starter):

Masters: 1 node (2 CPU, 4GB RAM, 25GB storage)
Workers: 2 nodes (2 CPU, 4GB RAM, 50GB storage each)

Select Nodes

  1. The system will show available ThreeFold Grid nodes
  2. Select nodes for your deployment
    • Choose based on location, specs, and availability
    • System may auto-select optimal nodes
  3. Review your selections

Review & Deploy

  1. Review your configuration:
    • Node counts and specs
    • Selected grid nodes
    • Estimated cost
  2. Confirm you have sufficient credits
  3. Click Deploy

The deployment process will begin. This typically takes 5-15 minutes.

Step 4: Access Your Cluster

Once deployed, you can access your cluster in two ways: kubectl and SSH.

Method 1: kubectl Access

Download kubeconfig

  1. Go to DashboardClusters
  2. Find your cluster
  3. Click the download icon (⬇️) or Get Config
  4. Save the file (e.g., mycluster-config.yaml)

Configure kubectl

# Set kubeconfig for this session
export KUBECONFIG=/path/to/mycluster-config.yaml

# Or copy to default location
mkdir -p ~/.kube
cp mycluster-config.yaml ~/.kube/config

# Test connection
kubectl get nodes

You should see your cluster nodes listed!

NAME          STATUS   ROLES                  AGE   VERSION
master-1      Ready    control-plane,master   10m   v1.26.0+k3s1
worker-1      Ready    <none>                 9m    v1.26.0+k3s1
worker-2      Ready    <none>                 9m    v1.26.0+k3s1

Method 2: SSH Access

Start Mycelium

If not already running, start Mycelium on your local machine:

sudo mycelium --peers \
  tcp://188.40.132.242:9651 \
  quic://185.69.166.8:9651 \
  tcp://185.69.166.7:9651 \
  quic://65.21.231.58:9651

Get Node IPs

From your dashboard:

  1. Go to your cluster details
  2. Find the Mycelium IPs for each node
  3. Note them down (e.g., 400:1234:5678:abcd::1)

SSH to Nodes

# SSH to master node
ssh root@400:1234:5678:abcd::1

# SSH to worker node
ssh root@400:1234:5678:abcd::2

You're now connected to your cluster node!

Step 5: Deploy Your First Application

Let's deploy a simple web application to test your cluster.

Create a Deployment

# Create an nginx deployment
kubectl create deployment hello-web --image=nginx:latest

# Check deployment status
kubectl get deployments
kubectl get pods

Expose the Service

# Expose as a service
kubectl expose deployment hello-web --port=80 --type=ClusterIP

# Check service
kubectl get services

Access the Service

# Port forward to your local machine
kubectl port-forward service/hello-web 8080:80

Open http://localhost:8080 in your browser. You should see the nginx welcome page!

Step 6: Monitor Your Cluster

Using Dashboard

Your Mycelium Cloud dashboard shows:

  • Cluster status (running, stopped, etc.)
  • Resource usage
  • Cost tracking
  • Node health

Using kubectl

# View cluster info
kubectl cluster-info

# Check node status
kubectl get nodes

# View all resources
kubectl get all --all-namespaces

# Check cluster events
kubectl get events

Managing Your Cluster

Scale Workers

Add more worker nodes:

  1. Go to cluster details in dashboard
  2. Click Scale or Add Nodes
  3. Configure new worker nodes
  4. Deploy

Delete Resources

# Delete the test deployment
kubectl delete deployment hello-web
kubectl delete service hello-web

Stop/Start Cluster

From the dashboard:

  • Stop: Pause cluster (saves costs)
  • Start: Resume cluster
  • Delete: Permanently remove (frees all resources)

Troubleshooting

Can't Connect with kubectl

  1. Check kubeconfig: Ensure KUBECONFIG is set correctly
  2. Verify Mycelium: Make sure Mycelium is running
  3. Check cluster status: Ensure cluster is running in dashboard
  4. Test network: Try pinging cluster nodes via Mycelium IPs
# Test Mycelium connectivity
ping6 <cluster-node-mycelium-ip>

Can't SSH to Nodes

  1. Mycelium running: Ensure Mycelium daemon is active
  2. SSH key added: Verify your public key is in dashboard
  3. Correct IP: Double-check Mycelium IP from dashboard
  4. Network access: Test with ping6 first

Pods Not Starting

# Check pod status
kubectl describe pod <pod-name>

# Check node resources
kubectl top nodes

# Check events
kubectl get events --sort-by='.lastTimestamp'

What's Next?

Now that you have a cluster running, explore more:

Resources


:::tip Cluster Running Successfully? Great! Now try the Tutorial to deploy more complex applications. :::