--- 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](/mycelium-network/install)) - ✅ **SSH key pair** - For node access - ✅ **kubectl installed** - For managing your cluster ([Install kubectl](https://kubernetes.io/docs/tasks/tools/)) - ✅ **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 1. Go to [vdc.grid.tf/sign-up](https://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: ```bash # 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 **Dashboard** → **Clusters** 2. Find your cluster 3. Click the download icon (⬇️) or **Get Config** 4. Save the file (e.g., `mycluster-config.yaml`) #### Configure kubectl ```bash # 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 9m v1.26.0+k3s1 worker-2 Ready 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):** 1. Open the Mycelium app 2. Click **Start** 3. That's it! **Using Command-Line (Linux):** ```bash sudo mycelium --peers \ tcp://188.40.132.242:9651 \ tcp://185.69.166.8: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 ```bash # 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 ```bash # Create an nginx deployment kubectl create deployment hello-web --image=nginx:latest # Check deployment status kubectl get deployments kubectl get pods ``` ### Expose the Service ```bash # Expose as a service kubectl expose deployment hello-web --port=80 --type=ClusterIP # Check service kubectl get services ``` ### Access the Service ```bash # 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 ```bash # 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 ```bash # 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 ```bash # Test Mycelium connectivity ping6 ``` ### 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 ```bash # Check pod status kubectl describe pod # 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: - **[Tutorial](/mycelium-cloud/tutorial)** - Deploy real applications - **[Kubernetes Concepts](https://codescalers.github.io/www_kubecloud/kubernetes-concepts)** - Learn K8s fundamentals - **[FAQ](https://codescalers.github.io/www_kubecloud/faq)** - Common questions ## Resources - **Dashboard**: [vdc.grid.tf](https://vdc.grid.tf) - **Kubernetes Docs**: [kubernetes.io/docs](https://kubernetes.io/docs/) - **kubectl Cheat Sheet**: [kubernetes.io/docs/reference/kubectl/cheatsheet](https://kubernetes.io/docs/reference/kubectl/cheatsheet/) - **Community**: [Telegram](https://t.me/threefold/1) --- :::tip Cluster Running Successfully? Great! Now try the **[Tutorial](/mycelium-cloud/tutorial)** to deploy more complex applications. :::