7.5 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 - Easy app for iOS, Android, macOS, Windows (Install guide)
- ✅ SSH key pair - For node access
- ✅ kubectl installed - For managing your cluster (Install kubectl)
- ✅ Credits - To fund your deployment
💡 Installing Mycelium is Easy!
Most users can install the Mycelium app from their App Store or download the desktop app - no command-line needed!
Step 1: Create Your Account
Sign Up
- Go to Mycelium Cloud
- Fill in your details:
- Email address
- Password
- Confirm password
- Click Sign Up
Verify Email
- Check your email inbox
- Click the verification link
- Your account is now active
Step 2: Set Up Your Account
Add Credits
- Log in to your dashboard
- Navigate to Credits or Billing section
- 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
- Navigate to SSH Keys section (or Add SSH card)
- Click Add SSH Key
- Paste your public key (usually
~/.ssh/id_rsa.pub
) - Give it a name
- 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
- From your dashboard, click Deploy Cluster or New Cluster
- 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
- The system will show available ThreeFold Grid nodes
- Select nodes for your deployment
- Choose based on location, specs, and availability
- System may auto-select optimal nodes
- Review your selections
Review & Deploy
- Review your configuration:
- Node counts and specs
- Selected grid nodes
- Estimated cost
- Confirm you have sufficient credits
- 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
- Go to Dashboard → Clusters
- Find your cluster
- Click the download icon (⬇️) or Get Config
- 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:
Using the App (Easy):
- Open the Mycelium app
- Click Start
- That's it!
Using Command-Line (Linux):
sudo mycelium --peers \
tcp://188.40.132.242:9651 \
tcp://185.69.166.8:9651
Get Node IPs
From your dashboard:
- Go to your cluster details
- Find the Mycelium IPs for each node
- 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:
- Go to cluster details in dashboard
- Click Scale or Add Nodes
- Configure new worker nodes
- 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
- Check kubeconfig: Ensure KUBECONFIG is set correctly
- Verify Mycelium: Make sure Mycelium is running
- Check cluster status: Ensure cluster is running in dashboard
- Test network: Try pinging cluster nodes via Mycelium IPs
# Test Mycelium connectivity
ping6 <cluster-node-mycelium-ip>
Can't SSH to Nodes
- Mycelium running: Ensure Mycelium daemon is active
- SSH key added: Verify your public key is in dashboard
- Correct IP: Double-check Mycelium IP from dashboard
- 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'
Resources
:::tip Cluster Running Successfully? Great! Now try the Tutorial to deploy more complex applications. :::