348 lines
7.4 KiB
Markdown
348 lines
7.4 KiB
Markdown
---
|
||
sidebar_position: 2
|
||
---
|
||
|
||
# Getting Started with Mycelium Cloud
|
||
|
||
Deploy your first Kubernetes cluster on Mycelium's decentralized infrastructure in just a few steps.
|
||
|
||
## Prerequisites
|
||
|
||
Before you begin, make sure you have:
|
||
|
||
- ✅ **Mycelium installed** – Easy app for iOS, Android, macOS, Windows ([Install guide](/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
|
||
|
||
:::info 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 [Mycelium Cloud](https://myceliumcloud.tf/)
|
||
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
|
||
|
||
:::tip 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):**
|
||
|
||
```text
|
||
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 Mycelium 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:
|
||
|
||
```text
|
||
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):**
|
||
|
||
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 <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
|
||
|
||
```bash
|
||
# Check pod status
|
||
kubectl describe pod <pod-name>
|
||
|
||
# Check node resources
|
||
kubectl top nodes
|
||
|
||
# Check events
|
||
kubectl get events --sort-by='.lastTimestamp'
|
||
```
|
||
|
||
## Resources
|
||
|
||
- **[Mycelium Cloud](https://myceliumcloud.tf/)**
|
||
- **[Kubernetes Docs](https://kubernetes.io/docs/)**
|
||
- **[kubectl Cheat Sheet](https://kubernetes.io/docs/reference/kubectl/cheatsheet/)**
|
||
- **[Community Chat](https://t.me/threefold/1)**
|
||
|
||
---
|
||
|
||
:::tip Cluster Running Successfully?
|
||
Great! Now try the **[Deployment Tutorials](/cloud/tutorial)** to deploy more complex applications.
|
||
:::
|